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 视为内置类型”设置在主项目中将该选项关闭。
     
  • 相关阅读:
    laravel 汇总数据
    Sway
    利用 Windows API Code Pack 修改音乐的 ID3 信息
    Windows Server 2012 R2 设置 NTP 服务
    Visual Studio "14" CTPs
    Win8.1 查看 “Windows 体验指数“
    json2csharp & json 格式化
    山寨版 WP8.1 Cortana 启动 PC
    Newtonsoft.Json WindowPhone7.1
    Cisco交换机基础命令 + Win Server08 R2 多网卡配置链路聚合
  • 原文地址:https://www.cnblogs.com/nkzhangkun/p/3949404.html
Copyright © 2011-2022 走看看