用户工具

站点工具


vs2015:dll

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

后一修订版
前一修订版
vs2015:dll [2020/03/21 19:18] – 创建 zhangguovs2015:dll [2023/03/17 10:12] (当前版本) – 外部编辑 127.0.0.1
行 1: 行 1:
 dll dll
 +
 +--目前自己测试发现vs2015企业版使用DLL功能。vs2015.ent_chs.iso
 +
 +而且在实际测试中没有发现需要各种vc runtime dll。
  
  
 参考网页:  https://blog.csdn.net/liguangxilgx/article/details/80552378 参考网页:  https://blog.csdn.net/liguangxilgx/article/details/80552378
 +
 +
 +====== vs2015生成/调用DLL ======
 +
 +===== DLL export/import 导入导出定义 =====
 +
 +
 +<code c>
 +// 下列 ifdef 块是创建使从 DLL 导出更简单的
 +// 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 MYDLL_EXPORTS
 +// 符号编译的。在使用此 DLL 的
 +// 任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将
 +// MYDLL_API 函数视为是从 DLL 导入的,而此 DLL 则将用此宏定义的
 +// 符号视为是被导出的。
 +#ifdef MYDLL_EXPORTS
 +#define MYDLL_API __declspec(dllexport)
 +#else
 +#define MYDLL_API __declspec(dllimport)
 +#endif
 +
 +// 此类是从 MyDLL.dll 导出的
 +class MYDLL_API CMyDLL {
 +public:
 + CMyDLL(void);
 + // TODO:  在此添加您的方法。
 +};
 +
 +extern MYDLL_API int nMyDLL;
 +
 +// 说明,如果想与python接口,必须要定义extern "C",因为python只有与C的接口,没有cpp的接口。
 +extern "C" MYDLL_API int fnMyDLL(void);
 +extern "C" MYDLL_API int ft_init();
 +extern "C" MYDLL_API void ft_close();
 +
 +</code>
 +
 +
 +===== 注意事项 =====
 +
 +vs使用时有debug/release & win32/x64的区别。
 +
 +比如使用release x64生成了一个DLL文件,那么这个文件只能用于release x64配置调用该DLL文件,其它情况以此类推。
 +
 +
 +====== python调用DLL ======
 +
 +===== Python: ctypes CDLL 和 WinDLL区别 =====
 +
 +原创WMSmile 最后发布于2019-09-16 15:34:17 阅读数 1037  收藏
 +展开
 +ctypes提供了两个LibraryLoader:CDLL和WinDLL。
 +CDLL支持__cdecl,WinDLL支持__stdcall(仅限Windows)。
 +根据您在C库中使用的调用约定,您必须在Python中使用正确的LibraryLoader。
 +————————————————
 +版权声明:本文为CSDN博主「WMSmile」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
 +原文链接:https://blog.csdn.net/wm9028/article/details/100889345
 +===== 调用not found问题 =====
 +
 +Python调用c++写的dll,出现function "add"not found错误
 +
 +出现问题的原因:
 +
 +在函数声明上没有使用
 +extern "C"__declspec(dllexport)
 +也就是你定义的FILE_RW_DLL_API
 +如果不做这样的声明,函数就按照c++的方式进行编译,在python中不能访问,但在c++中可以访问。
 +
 +参考网页:https://ask.csdn.net/questions/695713
vs2015/dll.1584789528.txt.gz · 最后更改: 2023/03/17 10:12 (外部编辑)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki