MFC中如何调用C工程? MFC调用C工程edit控件显示txt文本内容 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你是获得了那个C++工程的源码了还是只得到了生成的dll文件加头文件了?突然很迷茫不知道你的问题到底是什么 我只有那个C++工程的源码,就是想利用MFC界面来调用这个工程,在界面中可以改变工程文件中定义的输入量。。 获得的工程是个什么工程?DLL还是exe的?如果是DLL,肯定提供了接口函数。这个就比较方便了。先建个win32工程,利用这个工程编译得到dll,然后再MFC工程中加载dll,利用dll的导出函数干你的事。如果是个exe代码,两种办法,第一个是你对api编程和MFC都有一定的了解了,知道win32代码需要移植到MFC的哪个地方去。第2个,把exe代码变成dll代码,还是生成dll,再在MFC工程中引用它。至于你说的想要直接引用工程,我还不知道这样的办法,只有代码移植了。 首先感谢您的耐心回答,非常感谢~我对MFC编程不是特别了解,都是现学的,如果问题比较难以理解还望多多包涵,谢谢我用的是方法2,就是把它改成dll文件,但是我看了很多教程都只提到怎么把一个函数改成dll,可是我现在要改的是一个C++的工程文件,里面有一个源文件.CPP和大量的头文件.H,这个应该怎么改呢? 举个例子,比如说一个文件中含有2个函数,a1和a2,我现在将这个文件做成dll,其中a1被导出了,,那我调用这个dll的时候,会不会运行a2呢? 举个例子,比如说一个文件中含有2个函数,a1和a2,我现在将这个文件做成dll,其中a1被导出了,,那我调用这个dll的时候,会不会运行a2呢?不会 举个例子,比如说一个文件中含有2个函数,a1和a2,我现在将这个文件做成dll,其中a1被导出了,,那我调用这个dll的时候,会不会运行a2呢?想要调用a2,你就得在a1内调用a2,然后外部调用a1 如果你对dll的导出方法也不了解的话,那你就得先补充一下这方面的知识了,说实话你的困难在于你刚开始学习编程就想一口吃个胖子。你应该循序渐进的慢慢了解exe,库,dll,lib等的关系,等你了解的差不多了然后再开始这些工作。这样,给你一个dll的模板,用vs建立一个dll工程,然后按这个模板慢慢添加你的功能吧。这是一个简单的键盘钩子dll:dll头文件:__declspec(dllexport) HHOOK SetGlobalHook();__declspec(dllexport) 表示导出的意思dll的cpp文件:HHOOK g_hhook=NULL;LRESULT CALLBACK KeyboardProc( int code, // hook code WPARAM wParam, // virtual-key code LPARAM lParam // keystroke-message information){ return CallNextHookEx(g_hhook,code,wParam,lParam);}HHOOK SetGlobalHook(){ g_hhook=SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,GetModuleHandle("钩子Dll"),NULL); return g_hhook;}有头文件和cpp文件编译链接后就是一个简单的dll。所有要导出的函数都加上__declspec(dllexport) ,放在头文件里,在cpp中放入函数的实现。等dll生成后,在MFC工程中里加入刚才的头文件,和lib文件,然后就能使用dll的导出函数了。 GDI 显示已有的像素数组,用什么方法最高效 菜鸟提问,如何在基于MFC的COM组件中显示一个非模态对话框 弹出式菜单 控件对齐除了动态生成外,还有什么好办法? 客户端接收文件是不是用OnReceive的消息响应函数 如何实现对一个树式控件的item进行实时编辑? 请问如果要限制Edit控件中只能输入数字,应该怎么做,用什么函数 请问有谁能把属性表的那个可恶的“应用”按钮去掉。 Directshow如何在摄像头视屏和媒体播放视屏间自由切换? 求高手:修改哈夫曼图像编码程序 socket的问题。 关于MFC数据库CListCtrl控件
我只有那个C++工程的源码,就是想利用MFC界面来调用这个工程,在界面中可以改变工程文件中定义的输入量。。
至于你说的想要直接引用工程,我还不知道这样的办法,只有代码移植了。
举个例子,比如说一个文件中含有2个函数,a1和a2,我现在将这个文件做成dll,其中a1被导出了,,那我调用这个dll的时候,会不会运行a2呢?
举个例子,比如说一个文件中含有2个函数,a1和a2,我现在将这个文件做成dll,其中a1被导出了,,那我调用这个dll的时候,会不会运行a2呢?
不会
举个例子,比如说一个文件中含有2个函数,a1和a2,我现在将这个文件做成dll,其中a1被导出了,,那我调用这个dll的时候,会不会运行a2呢?
想要调用a2,你就得在a1内调用a2,然后外部调用a1
这是一个简单的键盘钩子dll:
dll头文件:
__declspec(dllexport) HHOOK SetGlobalHook();
__declspec(dllexport) 表示导出的意思dll的cpp文件:
HHOOK g_hhook=NULL;
LRESULT CALLBACK KeyboardProc(
int code, // hook code
WPARAM wParam, // virtual-key code
LPARAM lParam // keystroke-message information
)
{
return CallNextHookEx(g_hhook,code,wParam,lParam);
}
HHOOK SetGlobalHook()
{
g_hhook=SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,GetModuleHandle("钩子Dll"),NULL);
return g_hhook;
}
有头文件和cpp文件编译链接后就是一个简单的dll。
所有要导出的函数都加上__declspec(dllexport) ,放在头文件里,在cpp中放入函数的实现。等dll生成后,在MFC工程中里加入刚才的头文件,和lib文件,然后就能使用dll的导出函数了。