windows环境DLL链接问题之三:C/C++修饰符问题续
来源:互联网 发布:理财软件下载 编辑:程序博客网 时间:2024/06/06 15:38
已经看了__cdecl修饰符的效果,现在来看看__stdcall的修饰作用(去掉extern "C")。
注释掉源代码中的#define XX_XX _cdecl,启用#define XX_XX _stdcall
先看看C++编译器规则对DLL文件的的生成结果:
再看看DllCommain.cpp文件生成的obj文件:
DllCommain.exe文件引用符号:
可以看出,两个导出函数的函数名也按照修饰符的规则生成了另外的名称,但是这和__cdecl规则下的名称并不相同(虽然很相似)。由于obj中链接时需要引用的函数名称对应了,所以链接正常,并生成了可执行文件。
现在来看看加上extern “C”后的效果:
DllCom.dll文件导出函数内容:
DllCommain.obj文件内容:
DllCommain.exe文件导入函数信息:
可以看出三个文件中函数又对应的,因此链接也不会出现问题。
参考了一些网上的博客之类的,在此感谢!
1. __declspec,__cdecl,__stdcall,__declspec详述
2. DLL导出函数
3. 编译器的函数名修饰(关于修饰名的问题这篇文章写的很详细,赞!)
- windows环境DLL链接问题之三:C/C++修饰符问题续
- windows环境DLL链接问题之二:C/C++修饰符问题
- c语言const修饰符问题
- c++DLL封装DLL问题
- C#Dll 相关问题
- c语言链接问题
- 三种c#windows服务问题
- 【C/C++开发】C语言 DLL(动态链接库)中申请动态内存释放的问题
- windows环境DLL链接问题之一:dllimport是必须的吗?
- C mysql编译链接问题
- C++/C 程序员要掌握的问题集锦之三
- C#调用C/C++ 动态链接库DLL(三)
- 学习Linux C编程之数据类型 问题-extern及static修饰全局变量的区别
- C语言之const修饰符
- C语言之const修饰符
- C语言之 volatile 类型修饰符
- C# 调用C++dll string传递问题
- C#调用C++dll传参问题
- Linux内核----make ARCH=arm menuconfig时出错
- 开发android,我们需要哪些技能基础
- error: No resource identifier found for attribute 'onclick' in package 'android'
- struct 定义函数体 竟然可以!
- 一点一点重学统计学(一)——平均数与方差
- windows环境DLL链接问题之三:C/C++修饰符问题续
- 使用PDFlib生成pdf
- HDU 2054 A==B?,NYOJ-524-A-B(很有意思)
- C++要点摘录(一)C到C++的升级
- #ifndef /#define/#endif
- 极客技术专题【010期】:jQuery初学者入门 - jQuery effects
- java.lang.IllegalStateException: Invalid shuffle port number -1 returned for attempt_1377744323071_0
- myeclipse搭建webservice实例讲解
- 图片双缓存异步加载,把内存处理做到最优