连接release版的时候没有问题,而连接debug版的时候就有如下提示cdxd.lib(cdximagebase.obj) : error LNK2001: unresolved external symbol
"public: int __thiscall CDXFile::OpenRead(char * const)"
(?OpenRead@CDXFile@@QAEHQAD@Z)还有我用DUMPBIN察看了cdxd.lib的symbol,其中有一句是这样的,能给我解释一下是什
么意思吗?04C 00000000 UNDEF  notype ()    External     | ?OpenRead@CDXFile@@QAEHQAD@Z
(public: int __thiscall CDXFile::OpenRead(char * const))

解决方案 »

  1.   

    MFC Extention DLL 要Debug<->Debug  Release<->Release
      

  2.   

    不能将DEBUG和RELEASE的LIB 混合使用
      

  3.   

    Wingfire Wu:您的意思我不太明白,我并没有用MFC呀?
    kkkl6:我也没有混合使用,怎么办?
      

  4.   

    连接的路径对吗
    连接realse与debug的设置是不同的
    还有两个库是不同的
      

  5.   


    To:kkk16
    不能将DEBUG和RELEASE的LIB 混合使用
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    真的吗?我就混合使用过a.exe连接了b.lib(bebug版)和c.lib(release版)To:PrinceT
    首先CDXFile类是在那个Lib中实现的?我怀疑是你的RELEASE版与DEBUG版编译版本不一致导致,你可以查一下DLL的快速察看,看看DEBUG版的DLL的导出表中有没有CDXFile::OpenRead函数
      

  6.   

    release时系统进行一些优化,而debug并不,
    一般release小一点
      

  7.   


    debug里面有很多调试函数.并且进行初始化/优化等一些工作.
    所有很大.
      

  8.   

    to coolgh007:路径不对的话,会提示找不到xxx.lib的,不应该是这种错误,两个库当然不同,您的话让我一头雾水.
    to vioy:这个库是静态的lib,并不是动态连接文件,而且我不会查DLL的快速察看,您能指点一下...
      

  9.   

    PrintceT 是使用 CDX 庫做遊戲吧, cdxd.lib 是你自己編譯的嗎, 你有沒有不小心修改了 CDX project 的設置, 仔細看看 CDX project 中 cdxfile.cpp 是不是包含了, 我也編譯了 cdxd.lib, 並且使用 CDX 的 sample 試了一下, 沒有問題啊.
      

  10.   

    是我自己编译的,不过我什么也没改。
    编译cdxd.lib的时候什么error也没有,就是link cdxd.lib的时候出现上面的问题。
    我就一直觉得release & debug 的版本不对,是我down的3.1有问题吗?
      

  11.   

    DLL的快速察看...如果没有的话也可以用Virsual Stadio带的工具:ViewDependence。静态库可能不行的。现在问题解决了吗?