如何理解DLL中的extern "C"
2010-11-08 08:52
393 查看
在DLL的设计中中,,如果使用C++开发,通常在导出函数的定义中使用extern "C",为什么呢?因为当用户使用"运行时动态链接"的时候将使用GetProcAddress函数得到导出函数的地址,该函数是通过导出函数的函数名定位导出函数的,而C++编译器因为函数重载的原因会对开发者定义的函数名进行修饰,导致导出表中的函数名通常不是开发者使用的函数名,比如函数 ExportedFn可能被修饰成??ExportedFn@QAEX。所以使用extern "C"通知编译器按照C的格式进行编译,而不是使用C++的方法进行编译。使用VS提供的一个工具Dependency Walker可以查看DLL的导出函数。
相关文章推荐
- extern "C" __declspec(dllexport)
- 我来理解extern "C"
- C++程序员如何向一个java工程师解释extern "C"的作用
- extern "c" __declspec(dllexport) __declspec(dllimport)
- extern "C"、dllexport和.def (2006-11-13 23:33:00)
- 所谓"在表达式中,数组名总是被转换为指向该数组第一个元素的指针"应该如何理解?
- extern "C" _declspec(dllexport)浅析
- 深入理解extern "C"
- 如何理解">/dev/null 2>&1"
- 如何理解<base href="<%=basePath%>"
- C和C++函数的相互引用 extern "c"深入理解
- __declspec(dllexport),extern "c"与.def文件
- extern "C" __declspec(dllexport)
- 编写和使用DLL时,常用的关键字 extern "C",__declspec,__cdecl,__stdcall
- extern "C" __declspec(dllexport)
- 【extern】如何使用关键字extern "C"?
- extern "c" __declspec(dllexport) __declspec(dllimport)
- unable to start program "..\bin\Debug\start.dll" 如何解决
- 简单理解extern "C"