各位大大,我原来一个解决方案里面有2个工程,一个提供lib,一个提供exe。exe依靠lib才行。程序是控制台界面的,用C语言写的。线在我想加一个windows的UI。所以我用了mfc。也就是说,旧的两个工程,我保留lib,把exe踢掉。改成mfc提供的UI来做。可线在我发现我的程序编译不起来了,总是lib的东西没法子给exe用。我已经用了依赖什么的了。搞不懂了,谁能帮我啊?
原来的两个工程的编译参数:
lib:
/Od /I "./" /I "../../src/include" /I "../../src/include/ipv4" /I "../../src/arch/msvc6/include" /D "_DEBUG" /D "WIN32" /D "_LIB" /D "IPV4" /D "LWIP_DEBUG" /D "_MBCS" /FD /EHsc /RTC1 /MLd /YX"stdafx.h" /Fp".\Debug/lwip4.pch" /Fo".\Debug/" /Fd".\Debug/" /W3 /nologo /c /ZI
exe:
/Od /I "./" /I "./apps" /I "../../src/include" /I "../../src/include/ipv4" /I "../../src/arch/msvc6/include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "IPV4" /D "LWIP_DEBUG" /D "_MBCS" /FD /EHsc /RTC1 /MLd /YX"stdafx.h" /Fp".\test___Win32_Debug/test.pch" /Fo".\test___Win32_Debug/" /Fd".\test___Win32_Debug/" /W3 /nologo /c /ZI
新的工程,lib不变,用新的exe,新的exe编译参数如下:
/Od /I "./" /I "./apps" /I "../../src/include" /I "../../src/include/ipv4" /I "../../src/arch/msvc6/include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "IPV4" /D "LWIP_DEBUG" /D "_MBCS" /FD /EHsc /RTC1 /MLd /YX"stdafx.h" /Fp".\Debug_matrix/Matrix.pch" /Fo".\Debug_matrix/" /Fd".\Debug_matrix/vc70.pdb" /W3 /nologo /c /ZI

解决方案 »

  1.   

    提供lib,是否有相关的dll,但这个也不影响编译。
    那用lib用什么做的?
      

  2.   

    楼上的苏州人?:)
    没有相关的dll。我现在猜测可能是名字不同,lib是c编,倒出来的function name就是程序里的function name。exe是用mfc搞的,编译出来的名字和程序里的名字不一样。是不是这个可能会导致问题?
      

  3.   

    是的,呵呵。
    你打的编译参数给谁用的,cc?
    MFC用的是cc,你的lib呢?
      

  4.   

    在Project->Setting->Link->Object/Library Modules中加入你的.lib了吗?
      

  5.   

    lib 是静态库,直接在工程中加入 xxx.lib文件就可以了.
      

  6.   

    to  jslisong
    那个编译参数就是project->setting->c/c++->command line里面的,那个应该包含了c/c++里面的编译设定了。那个lib以前和c程序的exe可以一起工作阿。所以我觉得lib应该没有问题的to  yangang000
    我加了lib了,还是没有效果。总是lib的函数不能被找到。
      

  7.   

    几个尝试方法:
    Seting 里的lib完整路径描述
    library directory里设你lib的路径。
    最后一招:API LoadLibrary(),
    还不行得话,来我这里喝茶算了。
      

  8.   

    郁闷,就是不行。loadlibrary太烦了。按理来说不用这样子的阿,郁闷。来喝茶了