社区
C++ 语言
帖子详情
关于内置类型wchar_t的问题
syl5005
2015-01-30 09:12:19
一般的代码里(或者叫默认)都设置wchar_t做为内置类型,但现在有两个静态库,一个要求wchar_t为内置类型,另一个要求不将wchar_t做为内置类型,否则就会出现 error LNK2019: 无法解析的外部符号 "int __cdecl SetCustomData(unsigned short *,void *,unsigned long)" (?SetCustomData@@YAHPAGPAXK@Z)
的错误,现在实在不知应该怎么做啦,
麻烦大侠帮帮忙
...全文
509
10
打赏
收藏
关于内置类型wchar_t的问题
一般的代码里(或者叫默认)都设置wchar_t做为内置类型,但现在有两个静态库,一个要求wchar_t为内置类型,另一个要求不将wchar_t做为内置类型,否则就会出现 error LNK2019: 无法解析的外部符号 "int __cdecl SetCustomData(unsigned short *,void *,unsigned long)" (?SetCustomData@@YAHPAGPAXK@Z) 的错误,现在实在不知应该怎么做啦, 麻烦大侠帮帮忙
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
syl5005
2015-02-01
打赏
举报
回复
版主大人好,我现在就是这么干的,真麻烦呀
syl5005
2015-01-31
打赏
举报
回复
不能呀,现在头疼呢
encoderlee
版主
2015-01-31
打赏
举报
回复
不行,你现在的项目必须设置为“把wchar_t作为内置类型”,因为这样的话才能同时支持AB两个库, 因为在这种设置下,wchar_t和unsigned short都是合法类型,如果你现在的项目设置为“wchar_t不作为内置类型” 那么你现在的项目下,编译器根本就不认识wchar_t这个东西,只认识unsigned short,那么A库中导出的wchar_t*自然也都不认识
syl5005
2015-01-31
打赏
举报
回复
强转成unsigned short *类型,还是不行呀,为什么呀,晕死
syl5005
2015-01-31
打赏
举报
回复
我现在的项目是不将wchar_t做为内置类型的,那么我调用A库的函数,我就得改一下A库的头文件为void Function(const unsigned short *wsz);对吗?
encoderlee
版主
2015-01-31
打赏
举报
回复
那么现在的情况就是:实质上其中一个lib中的函数以wchar_t*作为字符串,另外一个lib中的函数以unsigned short *作为字符串。 如果不重新编译lib,解决办法就是改头文件,现在两个lib的头文件里的函数声明,都是声明用wchar_t*作字符串, 但实质上其中一个lib导出的函数是用unsigned short *作字符串。 假如A库lib编译的时候是以“wchar_t为内置类型”编译出来的,A库头文件有如下函数声明 void FunctionA(const wchar_t *wsz); B库lib编译的时候是以“wchar_t不作为内置类型”编译出来的,B库头文件有如下函数声明 void FunctionB(const wchar_t *wsz); 因为B库是以“wchar_t不作为内置类型”编译出来,B库头文件中的wchar_t实际上是unsigned short 那么现在新建一个项目,设置为“wchar_t为内置类型”,然后引入A、B两个库,然后修改B库的头文件, 改成: void FunctionB(const unsigned short *wsz); 就不会有链接错误了。只是调用的时候有点麻烦。 wchar_t wsz[] = L"Hello"; FunctionA(wsz); FunctionB((const unsigned short *)wsz);
syl5005
2015-01-31
打赏
举报
回复
没有定义次函数 ,应该怎么解决呢?呵呵,刚学不太懂
蒋晟
2015-01-31
打赏
举报
回复
把不支持你的项目的wchar_t设置的库封一个DLL出来在接口里用另外一种类型,比如unsigned short
yshuise
2015-01-31
打赏
举报
回复
一般来说没有定义次函数
relaxisland
2015-01-30
打赏
举报
回复
静态库是不能重新编译,对吧? 那貌似没办法吧
发布ezWinCE 0.2 Bate
Win32 编译此平台时,需要在 项目属性->配置属性->C/C++->预处理器->预处理器中定义 WIN32, EZW_WIN32 <br>在连接时,需要将 项目属性->配置属性->C/C++->语言->将w
char
_t视为
内置
类型
设置成NO(/Zc:w
char
_t...
CPP_Practice
基本
内置
类型
基本算数
类型
:
类型
含义 最小尺寸 bool 布尔
类型
8 bits
char
字符 8 bits w
char
_t 宽字符 16 bits
char
16_t Unicode字符 16 bits
char
32_t Unicode字符 32 bits short 短整型 16 bits int 整型 16 ...
qt http多线程断点续传下载v2.0(qt4 qt5均可用)
2.修改属性-->C/C++-->语言-->将W
Char
_t当做
内置
类型
选择否 ps: 1.本程序并不复杂,因此注释不多。我未经过大量测试,Bug肯定是有的,但应该
问题
不大,所以出了Bug 请不要破口大骂,程序供大家学习研究使用。 2....
C++中容易忽略的知识
2、在
内置
类型
中遇到的第一个
问题
是bool
类型
到底占了多大的存储空间。这个是C++标准未定义的,编译器可以根据自己的想法规定bool
类型
所占据的存储空间。 3、C++中有一种
类型
叫w
char
_t,叫宽字符。是对
char
...
c语言 w
char
_t,一个【w
char
_t】引发的学案
里面讲到了w
char
_t--------------------------------------------------------------Win OS 之 w
char
_t 与 ANSI/ISO C/CPP 之 w
char
_t:ANSI/ISO C/CPP 中 w
char
_t 表示长于 8-bit 的数据
类型
,至于多长,具体依赖...
C++ 语言
64,662
社区成员
250,487
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章