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 视为内置类型”设置在主项目中将该选项关闭。
     
  • 相关阅读:
    hadoop2 作业执行过程之reduce过程
    hadoop2 作业执行过程之map过程
    hadoop2 作业执行过程之yarn调度执行
    scala的下划线
    tomcat 配置系列1
    Windows Server 2008 __ Windows Server 2008R2
    dell技术中心
    戴尔服务器启动和raid设置(以dell r420为例)
    WinPE安装windows(dell r420)
    Red Hat enterprise linux 5.4 x64 + DELL R420 安装网卡驱动 (broadcom 5270)
  • 原文地址:https://www.cnblogs.com/nkzhangkun/p/3949404.html
Copyright © 2011-2022 走看看