我自己用C++写了一个静态的Lib类库,其中使用了对Unicode字符串的操作,分别编译成Debug版和Release版。当使用该库时发现,将该库和调试程序一起编译成Debug版时,没问题,运行OK;但是将该库和调试程序一起编译成Release版版时,类库中的许多函数编译后在连接时出错,如下:
error LNK2001: unresolved external symbol "public: __thiscall CUserAdmin::~CUserAdmin(void)" (??1CUserAdmin@@QAE@XZ)error LNK2001: unresolved external symbol "public: int __thiscall CUserAdmin::IsAdministrator(void)" (?IsAdministrator@CUserAdmin@@QAEHXZ)等等。当然其中有一些并没有报错。我将类库和这些信息仔细比对了,并没有发现有什么不同,而且那些报错的函数我确实已经在CPP文件中都实现了。这到底是怎么回事?

解决方案 »

  1.   

    另外,我确实已经将该类库在Setting中加上了。
      

  2.   

    Debug版和Release版的输出路径是否相同
      

  3.   

    估計不是你的庫release的問題.
    先確定你的调试程序的release版本的正確.看看link裡面的.lib是否存在不一樣的問題.
    如strmbasd.lib是給Debug提供的.而他的Release的要改名為strmbase.lib
      

  4.   

    TO:YP2002CN(老婆我不敢了,老婆我愛你) 
    改名是怎么回事?
      

  5.   

    找到了,就是我没有设置好。唉,真耽误时间,Debug的设置了,Release的却落下了。
    对大家表示感谢,回复的都有分。
      

  6.   

    就上面的strmbasd.lib來說,同是一個程序編譯的.在不同編譯環境下,他們的名稱卻是不同的.
    你把你的調試程序的Link裡面的lib拷貝過來看看..