zoukankan      html  css  js  c++  java
  • VS 2010(2005)Unicode使用cximage库Load函数问题

    原文链接http://tsing01.blog.163.com/blog/static/205957283201302544547421/

    在向vs2005工程中添加使用cximage库时,碰到下面的链接错误:

         error LNK2001: 无法解析的外部符号 "public: bool __thiscall CxImage::Load(unsigned short const *,unsigned long)" (?Load@CxImage@@QAE_NPBGK@Z)
         其中工程使用了unicode字符集,所以把cximage的配置也改为了unicode 字符集,检查运行时库也是相同的,且工程的debug/release对应上cximage的debug/release库,但还是消除不了这个错误,折 腾了半天,只好用笨办法,重新建了个空工程,加入cximage库,编译居然没错,于是一项项对比工程配置,终于发现了问题所在:cximage源工程中 将wchar_t设置为内置类型的选项和当前工程中的不一致,都改成否(/Zc:wchar_t-)后rebuild all问题解决。
         于是搜索了下msdn,发现了这个错误的源头:
         当调用采用 wchar_t 类型的静态库或 DLL 中的函数时(请注意,BSTR 和 LPWSTR 解析为 wchar_t*),可能会遇到“LNK2001 无法解析的外部符号错误”。此错误由 /Zc:wchar_t 编译器选项引起,默认情况下此选项在新的 MFC 项目中设置为打开。此选项使编译器将 wchar_t 当作本机类型。在 Visual C++ .NET 以前版本中,wchar_t 被当作 unsigned short。如果主项目和库不使用 /Zc:wchar_t 的相同设置,这将导致函数签名不匹配。若要避免此问题,请使用 /Zc:wchar_t 编译器选项重新生成该库,或使用“属性页”对话框中“语言”属性页上的“将 wchar_t 视为内置类型”设置在主项目中将该选项关闭。
     
  • 相关阅读:
    【C#进阶系列】06 类型和成员基础
    纪中5日T1 1564. 旅游
    纪中17日T1 2321. 方程
    纪中17日T2 2322. capacitor
    纪中10日T1 2313. 动态仙人掌
    纪中14日听课小结 图论 最短路 二分图 差分约束
    一个抓猫的游戏 消遣GAME 持续更新中!
    洛谷P1464 Function  HDU P1579 Function Run Fun
    洛谷P1976 鸡蛋饼
    纪中12日T1 2307. 选择
  • 原文地址:https://www.cnblogs.com/nkzhangkun/p/3949404.html
Copyright © 2011-2022 走看看