C++
lzlvv
这个作者很懒,什么都没留下…
展开
-
动态链接库 的那些事
1._declspec(dllexport)表示导出库。即当前的对象(函数、类等)要生成导出库即 .lib文件。注:应用程序如果想要访问某个DLL中的函数,那么该函数必须是已经被导出的函数。注:要查看在DLL中有那些导出对象,在命令行模式下使用:dumpbin –exports x..dll。注:如果DLL中没有任何函数被指定为导出,则指DLL不会生成相应的引入库(.lib文件)。 2原创 2014-08-27 11:23:40 · 431 阅读 · 0 评论 -
加载DLL(动态链接库)的方式
隐式导入:l 即在程序指定链接的.lib(可以通在项目中设置,也可以通过代码指定);以及进行函数的前置声名(extern或者_declspec(dllimport)),注:可以通过在导出的头文件定义导出函数的前置声名。l 通过.lib文件在可执行程序中生成DLL的重定位表(含DLL名称、导入的函数名表(存放导入的函数名,在生成可执行程序后就建立)、DLL中导出函数的地址映射表(此地址在原创 2014-08-27 11:25:01 · 587 阅读 · 0 评论 -
函数调用约定(动态库相关 )
1.__cdecl:C 和C++ 程序的缺省调用规范。 2.__stdcall:标准调用约定(即WINAPI调用约定),也就是pascal调用约定。 3.Delphi就是采用__stdcall约定,所以在调用和C程序的动态库时就会出现因为函数名称改编问题导致找不到函数名的问题。 4.函数调用约定的作用: 1).指定函数在被调用时形参的压栈顺序(__cdecl原创 2014-08-27 11:26:48 · 516 阅读 · 0 评论