
c++,动态链接库
文章平均质量分 62
zhengudaoer
这个作者很懒,什么都没留下…
展开
-
__stdcall和__cdecl是什么意思,有什么不同
参考资料:__stdcall和__cdecl两者的区别 - 服务器 - C++博客 (cppblog.com)_stdcall与_cdecl区别_永远即等待的专栏-优快云博客_cdecl和stdcall的区别1.几乎我们写的每一个WINDOWS API函数都是__stdcall类型的,首先,需要了解两者之间的区别: WINDOWS的函数调用时需要用到栈(STACK,一种先入后出的存储结构)。当函数调用完成后,栈需要清除,这里就是问题的关键,如何清除??如果我们的函数...转载 2022-02-17 11:13:44 · 836 阅读 · 0 评论 -
用c++以ado方式 远程访问ORACLE数据库
第一次用oracle,很多理解可能存在错误。ado的具体使用方式就不详细说了,链接oracle的链接串为:Provider = OraOLEDB.Oracle; User ID = 用户名; Password = 密码; Persist Security Info = True; Data Source = (DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = ip)(PORT = 1521)) )(CONNECT_DATA =原创 2020-12-29 18:02:37 · 2466 阅读 · 0 评论 -
动态链接库导出模板类以及一些问题
这篇文章先说如何写一个导出模板类的动态链接库,再说问题。要编写自己的动态链接库首先需要创建一个dll工程,我用的是win10+vs2015创建dll工程后vs会自动给你生成几个文件。在Dll2.h和Dll2.cpp中写自己的类定义和类函数实现就好了。但是因为是要导出类所以要有__declspec(dllexport)又因为是模板所以直接上代码看看怎么做吧.h#pragma原创 2017-06-27 14:39:26 · 6466 阅读 · 1 评论 -
动态链接库给传入指针赋值,调试时有可能调试器会欺骗你。
这几天在查找一个动态链接库使用的问题,这个动态链接库的功能时提供序列化和反序列化的功能。dll接口如下:int UnSerialize(const char* filename, SerializeClass& object);其中object就是要反序列化的 对象,filename是要反序列化的数据文件。在我实际使用中 object中是有指针成员的,而且指针成员所指类型还有指针。当在原创 2017-08-01 15:10:47 · 1165 阅读 · 0 评论 -
查看程序所依赖的dll
dependency.exe是微软出的一款查看可执行程序依赖项的工具,但是微软已经不再更新它,强行使用它会有一些坑。微软系统将api做了重新分组包装,比如 CreateFileW,最开始就是实现在 kernel32.dll 这个 dll 中的,现在系统只是在内部绕了几个弯子,kernel32.dll 里的 CreateFileW 没有实现了,而是又转到了 api-ms-win-core-fil...原创 2019-08-29 17:49:32 · 2010 阅读 · 0 评论 -
进入动态链接库函数后,传入指针改变的bug
出现这个问题的原因是导出函数的实际返回值类型和GetProcAddress获得函数指针时定义的函数指针的函数返回值类型不一致导致。如:导出函数为extern "C" bool LICENSE_CLASS _stdcall isLicensed(char* licensefile);使用时却为typedef string(*func_isLicensed)(char* );HAN...原创 2019-08-29 17:59:17 · 945 阅读 · 1 评论