社区
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)
的错误,现在实在不知应该怎么做啦,
麻烦大侠帮帮忙
...全文
723
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
打赏
举报
回复
静态库是不能重新编译,对吧? 那貌似没办法吧
VC++2008中的unsigned short和w
char
_t
本文探讨了从VC6移植到VS2008时w
char
_t与unsigned short
类型
转换的
问题
。介绍了w
char
_t与unsigned short的区别,并提供了三种解决方法:关闭w
char
_t
内置
类型
属性、使用reinterpret_cast强制转换或调整typedef声明。
问题
-2011-11-24:“const int vc_attributes::Pre::w
char
_t”: 重定义
本文解决了在VS2010和Qt4.8.5环境下出现的“constintvc_attributes::Pre::w
char
_t”重定义的
问题
。通过调整编译器设置,确保w
char
_t被视为
内置
类型
。
VS2015,qt 5.7.1,编译使用QString的toW
Char
Array时出现无法解析的toW
Char
Array(unsigned
char
*)的
问题
,无法正确识别W
Char
_t
类型
本文解决了一个特定的
问题
:在使用VS2015和Qt5.7.1进行开发时遇到的LNK200错误,该错误源于W
Char
_t
类型
未被正确识别。通过调整工程属性设置,即将W
Char
_t视为
内置
类型
,可以有效解决这一编译
问题
。
Treat w
char
_t as built-in type不一致导致的链接错误
本文介绍在使用VS2013时遇到的w
char
_t被视为
内置
类型
的配置
问题
,导致链接错误的情况,并提供了调整配置的具体步骤。
virtual long __stdcall CBaseFilter::JoinFilterGraph 错误
本文解决了在使用VS2003IDE进行编译时遇到的
问题
,即无法解析外部符号。通过将w
char
_t视为
内置
类型
设置,成功解决了该编译错误。
C++ 语言
65,210
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章