规则mfc dll,网上的文章是不是误导人啊? 规则mfc里的接口函数的参数类型使用CString不是说了吗, 对于规则mfc dll的接口参数是CString为什么也可以使用 某个规则 mfc dll 的接口函数的参数类型是CString该dll也正常工作不是说,不可以吗 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那你说,它和 mfc 扩展dll有什么区别? mfc扩展dll用的是MFC自建的一套导入导出机制,在导出MFC类的时候比较方便,你可以用Depends看编译出的DLL,都看不到导出函数的 你的意思是mfc 规则dll 也可以导出mfc类了?只不过没有 扩展mfc dll方便? http://download.csdn.net/detail/arpnet99/4933606 这个经典文章里就是提到了, 规则dll不能导出mfc的类, 自然也不能接口函数参数为mfc 的类 我不知道你要导出什么MFC类,不过我做的集成自CButton这些的MFC类的页面控件,用规则dll一样的导出,在里面以Shared方式使用MFC就行了。只需要在申明类的时候,申明为__declspec(dllexport),使用时申明为__declspec(dllimport) .DLL 文件的布局与 .exe 文件非常相似,但有一个重要的差异:DLL 文件包含导出表。导出表包含 DLL 导出到其他可执行文件的每个函数的名称。这些函数是 DLL 中的入口点;只有导出表中的函数可由其他可执行文件访问。DLL 中的任何其他函数都是 DLL 私有的。通过使用带 /EXPORTS 选项的 Dumpbin 工具,可以查看 DLL 的导出表。有两种从 DLL 导出函数的方法:在生成 DLL 时,创建一个模块定义 (.def) 文件并使用该 .def 文件。如果希望按序号而不是按名称从 DLL 导出函数,则请使用此方法。在函数的定义中使用 __declspec(dllexport) 关键字。用上述任何方法导出函数时,确保使用 __stdcall 调用约定。More detail, please refer to the url listed below:http://msdn.microsoft.com/zh-cn/library/z4zxe9k8(v=vs.80).aspx 如此说来,那么 规则dll的接口参数或者接口的返回值类型都可以是mfc或者mfc的派生类了我做过实验吧:类型到添加一个mfc的类,基类为CButton,啥都不做, 仅仅用类向导添加一个类继续添加一个(手工),extern "C" _declspec(dllexport) void fun_test8(CString str);extern "C" _declspec(dllexport) void fun_test8(CString str){ str=_T("hello");}发现也可以正常使用。我惊奇的发现:我被网上的 2逼文章给误导很久了, 这文章很出名。里面提到过:只有扩展mfc dll才可以: 接口函数或者导出类是与mfc相关的.我验证过mfc 扩展dll貌似2者没有什么大的区别。要说区别,在这种应用情景下游区别: 写一个函数, 这个函数的功能是:弹出一个模式对话框来, 对于扩展mfc dll,是不会成功的。我被网上的 2逼文章给误导很久了, 这文章很出名。 里面提到过:只有扩展mfc dll才可以: 接口函数或者导出类是与mfc相关的. Socket 客户端怎么关闭? 如何在程序中判断当前编译选项是static library 还是shaed dll ? 如何获取应用程序下所有子控件鼠标弹起消息 高程过了,开心啊! 请问这个自动运行的程序该怎么做? 帮我解决问题后,我怎样把分给你? 急急急!!COM中日期数据类型如何传入传出??谢谢 分割一个字符串的问题? 1000分赠送,网络安全问题,SSL加密,高手请进来 新人求助应用mfc调用其他硬件的API serialEnum 枚举不到我安装的com port MFC中建了一个基于对话框的程序,单击按钮进入另一个对话框的问题
那你说,它和 mfc 扩展dll有什么区别?
你的意思是mfc 规则dll 也可以导出mfc类了?只不过没有 扩展mfc dll方便?
这个经典文章里就是提到了, 规则dll不能导出mfc的类, 自然也不能接口函数参数为mfc 的类
我不知道你要导出什么MFC类,不过我做的集成自CButton这些的MFC类的页面控件,用规则dll一样的导出,在里面以Shared方式使用MFC就行了。只需要在申明类的时候,申明为__declspec(dllexport),使用时申明为__declspec(dllimport)
有两种从 DLL 导出函数的方法:
在生成 DLL 时,创建一个模块定义 (.def) 文件并使用该 .def 文件。如果希望按序号而不是按名称从 DLL 导出函数,则请使用此方法。
在函数的定义中使用 __declspec(dllexport) 关键字。
用上述任何方法导出函数时,确保使用 __stdcall 调用约定。More detail, please refer to the url listed below:
http://msdn.microsoft.com/zh-cn/library/z4zxe9k8(v=vs.80).aspx
如此说来,那么 规则dll的接口参数或者接口的返回值类型都可以是mfc或者mfc的派生类了我做过实验吧:类型到添加一个mfc的类,基类为CButton,啥都不做, 仅仅用类向导添加一个类继续添加一个(手工),extern "C" _declspec(dllexport) void fun_test8(CString str);
extern "C" _declspec(dllexport) void fun_test8(CString str)
{
str=_T("hello");
}发现也可以正常使用。我惊奇的发现:我被网上的 2逼文章给误导很久了, 这文章很出名。里面提到过:只有扩展mfc dll才可以: 接口函数或者导出类是与mfc相关的.
我验证过mfc 扩展dll貌似2者没有什么大的区别。要说区别,在这种应用情景下游区别:
写一个函数, 这个函数的功能是:
弹出一个模式对话框来,
对于扩展mfc dll,是不会成功的。我被网上的 2逼文章给误导很久了, 这文章很出名。
里面提到过:只有扩展mfc dll才可以: 接口函数或者导出类是与mfc相关的.