社区
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)
的错误,现在实在不知应该怎么做啦,
麻烦大侠帮帮忙
...全文
630
10
打赏
收藏
关于内置类型wchar_t的问题
一般的代码里(或者叫默认)都设置wchar_t做为内置类型,但现在有两个静态库,一个要求wchar_t为内置类型,另一个要求不将wchar_t做为内置类型,否则就会出现 error LNK2019: 无法解析的外部符号 "int __cdecl SetCustomData(unsigned short *,void *,unsigned long)" (?SetCustomData@@YAHPAGPAXK@Z) 的错误,现在实在不知应该怎么做啦, 麻烦大侠帮帮忙
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
打赏
举报
回复
静态库是不能重新编译,对吧? 那貌似没办法吧
CString、LPCTSTR、LPTSTR、T
CHAR
、W
CHAR
、string、w
char
_t、
char
解析
CString、LPCTSTR、LPTSTR、T
CHAR
、W
CHAR
、string、w
char
_t、
char
解析 CString、LPCTSTR、LPTSTR、T
CHAR
、W
CHAR
、string、w
char
_t、
char
解析 CString、LPCTSTR、LPTSTR、T
CHAR
、W
CHAR
、string、w
char
_t、
char
解析
发布ezWinCE 0.2 Bate
==========================================
2008-07-09 0.2 Bate
1.将原静态链接Lib改为动态链接
2.添加一些有用的类
3.修改了类库的初始化方法
4.增加了对于WinCE的支持,现在支持三种平台PPC,WinCE,Win32(待完成)
5.修正了一些BUG
==============================================
ezWindows.vcproj 包含三种平台的编译选项
1. Pocket PC
编译此平台时,需要在 项目属性->配置属性->C/C++->预处理器->预处理器中定义 WINCE, EZW_PPC
2. WinCE
编译此平台时,需要在 项目属性->配置属性->C/C++->预处理器->预处理器中定义 WINCE, EZW_WINCE
3. Win32
编译此平台时,需要在 项目属性->配置属性->C/C++->预处理器->预处理器中定义 WIN32, EZW_WIN32
在连接时,需要将 项目属性->配置属性->C/C++->语言->将w
char
_t视为
内置
类型
设置成NO(/Zc:w
char
_t-)
词汇表:
项目属性 pproperties
配置属性 Configuration Properties
预处理器 Preprocessor
预处理器定义 Preprocessor
语言 Language
将w
char
_t视为
内置
类型
Treat w
char
_t as Built-in Type
Sinoprise的下载地址: http://www.gotmono.cn/showtopic.aspx?page=end&topicid=295#380
C++ Convert 多种字符转换函数
C++ Convert 多种字符转换函数,网络上收集的多种整合, 自己看着选一个来用用就可以。 C++ Convert 多种字符转换函数,网络上收集的多种整合, 自己看着选一个来用用就可以。
VC6代码向VC2005升级时要注意的
问题
VC6代码向VC2005升级时要注意的
问题
Cstring与其他
类型
的转换
内容包括:VC常用数据
类型
列表,常用数据
类型
转化
C++ 语言
65,184
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章