zoukankan      html  css  js  c++  java
  • VS2013 中使用 CxImage 库时用Unicode编码时出现链接错误

    CxImage 本身是支持Unicode 编码的,编译CxImage库的时候选择编译Unicode就可以了,得到的lib文件和dll文件很容易看出有个u的就是Unicode编码的

    当然在使用的时候要对应项目该使用哪种库,为了方便,在使用动态库时,我选择全部导入 Debug Unicode_Debug  Release Unicode_Release四种lib

    #pragma comment(lib,"cximage.lib")
    #pragma comment(lib,"cximagecrt.lib")
    #pragma comment(lib,"cximagecrtd.lib")
    #pragma comment(lib,"cximagecrtdu.lib")
    #pragma comment(lib,"cximagecrtu.lib")
    #pragma comment(lib,"cximaged.lib")
    #pragma comment(lib,"cximagedu.lib")
    #pragma comment(lib,"cximageu.lib")

    包含头文件,然后把dll都放到项目目录就可以使用了,导入路径可以直接写相对路径是因为在项目属性里设置了包含目录和库目录

    实际上把头文件整理到一个include文件夹lib文件整理到了一个lib文件夹

    然后就可以用动态库的形式使用了。

    这样使用看似是没有什么问题的,但是如果你的项目使用Unicode编码编译的时候会出现

    error LNK2001: 无法解析的外部符号 "public: bool __thiscall CxImage::Load(unsigned short const *,unsigned long)" (?Load@CxImage@@QAE_NPBGK@Z)

    这样的错误,其实产生这样错误的原因是CxImage项目的设置和当前项目设置不一致造成的

    当然你改成多字节字符集是完全OK的

    这里设置成否才可以运行,这个设置是设置wchar_t是否作为本机类型,

    关于这个设置的详情可以看MSDN    

    https://msdn.microsoft.com/zh-cn/library/dh8che7s.aspx?f=255&MSPPError=-2147217396

    关于CxImage项目的编译设置全部按照官方给的文档就好了。

  • 相关阅读:
    浅涉OPC Client
    枚举目标机器已注册的OPC服务器
    C++ DCOM服务器和C#客户端互操作完全解释
    COMException:没有注册类别(REGDB_E_CLASSNOTREG)
    网络化广播主机ZABKZ/AXT8182
    OPC 技术文档之 IOPCBrowseServerAddressSpace 的使用
    SQL Server 2008 r2 服务无法启动
    Infinova V2040 系列 大型矩阵切换/控制系统
    COM中GUID和UUID、CLSID、IID
    django 视图与网址
  • 原文地址:https://www.cnblogs.com/dupengcheng/p/7785005.html
Copyright © 2011-2022 走看看