封装DLL一般用哪个方法? 1通常用 win32 Dynamic-Link Libraty 然后选择dll将生成的大部分代码删掉2可以没有的3最好加上def文件 最好用__stdcall 和 extern"C" 修饰函数,函数参数类型必须为基本类型. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://blog.csdn.net/PentiumMMX/archive/2007/05/11/1605062.aspx 如果我想导出一个类的话,是不是就不能用extern "C", __stdcall 了 不能导出类,那样的dll会有问题的.class 不是二进制兼容的 可以导出类,但最好模仿COM里的接口。导出类用纯的抽象类。比如Class _declspec( dllexport) classExport{ virtual void _stdcall testFun( int a,int b ) =0;};这样就二进制兼容了。 全局导出函数一般如下:extern "C" _declspec (dllexport) void _stdcall Func1( int a,int b );extern "C"告诉C++编译器编译后不要改变你的的导出函数名,_stdcall约定了你的函数调用方式。并且在导出函数里的参数类型最好都是简单的数据类型,不要使用某种语言自己封装的特殊的数据类型,不如VC的CString,这样你的DLl就能比较好的跨编译器使用了。 1通常用 win32 Dynamic-Link Libraty 然后选择dll将生成的大部分代码删掉2可以没有的3最好加上def文件 最好用__stdcall 和 extern"C" 修饰函数,函数参数类型必须为基本类型. 用WINAPI很好的 如何实现下面的纹理贴图 http 返回的expires 如何转换为systemtime? 请教如何录制与回放鼠标事件(本人刚刚接触vc两周的学生) 怎么样才能把IE搞的内存泄漏? 用VC开发DLL,请大家介绍一本书 关于使用GetWindowLong或GetWindowLongPtr的问题 初学者的请教 水彩笔等特效笔是如何实现的? 鼠标移动的问题 一个简单的问题 请教函数里面系统分配内存后以指针形式返回函数的问题 超难讨论性问题.有空都来说说,100相送.(内详)
Class _declspec( dllexport) classExport
{
virtual void _stdcall testFun( int a,int b ) =0;
};
这样就二进制兼容了。
extern "C" _declspec (dllexport) void _stdcall Func1( int a,int b );
extern "C"告诉C++编译器编译后不要改变你的的导出函数名,_stdcall约定了你的函数调用方式。
并且在导出函数里的参数类型最好都是简单的数据类型,不要使用某种语言自己封装的特殊的数据类型,不如VC的CString,这样你的DLl就能比较好的跨编译器使用了。
将生成的大部分代码删掉
2可以没有的
3最好加上def文件 最好用__stdcall 和 extern"C" 修饰函数,函数参数类型必须为基本类型.
用WINAPI很好的