好像是因为静态库里和调用库里对wchar_t的解释不同,导致函数链接不匹配吧

解决方案 »

  1.   

    对对对,如果库中Treat wchar_t as Build-in Type为NO的话,wchar_t就是一个unsigned short
    结果库中的函数实际上是void Function(unsigned short *psz);
    但是头文件中声明的是void Function(wchar_t *psz);
    而且在主项目中设置的Treat wchar_t as Build-in Type为YES。
    这个wchar_t在主项目中就是wchar_t,不是unsigned short。
    类型不一致,然后链接器就开始抱怨了:“你这个void Function(wchar_t *psz);根本没有定义!”
      

  2.   

    http://msdn.microsoft.com/zh-cn/library/dh8che7s(VS.80).aspx
      

  3.   

    http://msdn.microsoft.com/zh-cn/library/s3f49ktz(v=vs.80).aspx
      

  4.   

    调用静态库也可能存在
    多线程
    多线程调试
    多线程dll
    多线程调试dll生成出来的如果不一致也会造成错误。
      

  5.   


    就是普通的找不到函数实现导致的链接错误提示,unresolved external symbol "函数名" ()
    只不过从表面上来看,函数确实是存在的,实际上是因为对wchar_t不同的解释导致实际上无法匹配