头儿让自己把写的lte dangle的测试工具打包出api交给其他厂商客户,我想也可以,只要把exe编译成dll,然后export出来几个函数接口不就OK了。结果是可行的,但是过程是“漫长”滴,呵呵,因为之前没做过。现在把这两天的成果写下来,毕竟耗费时间了。
思路:我是通过新建mfc的regular share的dll工程,然后把原来工程的.cpp和.h文件以及资源.rc和文件夹res导入新建dll工程对应目录。
导入我们会遇到的问题:
1、原来工程Cxx.h中的类是从CWinApp中继承下来的,里面隐含WinMain()函数,但是我们新建dll工程也有自己的WinMain()入口,这样我们就需要把要导入的原来工程中的Cxx.h中的相关类做修改,删去: public CWinApp,virtual BOOL InitInstance();DECLARE_MESSAGE_MAP()等。
2、很可能导入资源中含有对话框,这样只需要把原来工程的res文件夹和.rc文件copy到新建dll工程目录中,然后修改相关名称即可。如此你会发现自己是多么聪明,省去了一个大麻烦,不用再去新建对话框,让后按照原来dialog资源一个各种定义这么麻烦。
编译的环境:右击工程->属性->配置属性->general 把工程默认中的Use of MFC对应得改成Use MFC in a Static Library。
对应你想export那个函数,只要在新建工程dll中在新建.cpp,包含对应.h
//global.cpp,就像这个,在其他GUI调用ShowDlg这个函数,就会弹出相应对话框。
#include &