解决方案 »

  1.   

    你是获得了那个C++工程的源码了还是只得到了生成的dll文件加头文件了?突然很迷茫不知道你的问题到底是什么
      

  2.   


    我只有那个C++工程的源码,就是想利用MFC界面来调用这个工程,在界面中可以改变工程文件中定义的输入量。。
      

  3.   

    获得的工程是个什么工程?DLL还是exe的?如果是DLL,肯定提供了接口函数。这个就比较方便了。先建个win32工程,利用这个工程编译得到dll,然后再MFC工程中加载dll,利用dll的导出函数干你的事。如果是个exe代码,两种办法,第一个是你对api编程和MFC都有一定的了解了,知道win32代码需要移植到MFC的哪个地方去。第2个,把exe代码变成dll代码,还是生成dll,再在MFC工程中引用它。
    至于你说的想要直接引用工程,我还不知道这样的办法,只有代码移植了。
      

  4.   

    首先感谢您的耐心回答,非常感谢~我对MFC编程不是特别了解,都是现学的,如果问题比较难以理解还望多多包涵,谢谢我用的是方法2,就是把它改成dll文件,但是我看了很多教程都只提到怎么把一个函数改成dll,可是我现在要改的是一个C++的工程文件,里面有一个源文件.CPP和大量的头文件.H,这个应该怎么改呢?
      

  5.   


    举个例子,比如说一个文件中含有2个函数,a1和a2,我现在将这个文件做成dll,其中a1被导出了,,那我调用这个dll的时候,会不会运行a2呢?
      

  6.   


    举个例子,比如说一个文件中含有2个函数,a1和a2,我现在将这个文件做成dll,其中a1被导出了,,那我调用这个dll的时候,会不会运行a2呢?

    不会
      

  7.   


    举个例子,比如说一个文件中含有2个函数,a1和a2,我现在将这个文件做成dll,其中a1被导出了,,那我调用这个dll的时候,会不会运行a2呢?

    想要调用a2,你就得在a1内调用a2,然后外部调用a1
      

  8.   

    如果你对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的导出函数了。