作者goodzey (--)
看板C_and_CPP
标题[问题] 型别转换问题
时间Mon Sep 4 17:32:01 2017
小弟最近想把一个Visual Studio 2005小专案加入一个Visual Studio 2008大专案中,遇
到型别转换问题:
在VS2008大专案中
const char* XXX(void *A, const char *B, const char *C, const char *D){...}
在VS2005小专案中
char* YYY= XXX(E, F, G, H);
结果出现编译错误:
错误402 error C2440: '正在初始化' : 无法由 'const char *' 转换为 'char *'
我试过一个方法:
在VS2005小专案中改成
char* YYY= (char*)XXX((void *)E, (const char *)F, (const char *)G, (const
char *)H);
结果编译会过,但是程式执行.exe到这部分功能时还是会自动关掉
请问大家该怎麽解决?
谢谢!!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.224.139.203
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1504517523.A.156.html
1F:→ stucode: 我猜你後面还有程式码尝试修改YYY指向的内容 这样当然炸 09/04 18:14
2F:→ stucode: 没有的话用const char*去接XXX的回传值就好了 09/04 18:14
3F:→ Lipraxde: 一定要改的话就用strcpy复制一份出来改 09/04 18:20
4F:→ tinlans: 乱改 const 会死不意外,检讨一下 09/05 11:56
5F:→ Killercat: YYY用const char*接有什麽困难吗 = = 09/05 14:48
6F:→ Killercat: 要用值的话再strcpy_n一份出来不就好了 09/05 14:48
7F:→ Killercat: 编译器明明都讲那麽清楚了 XD 09/05 14:49
8F:→ Lipraxde: 一开始不熟悉的人就是会用怪怪的方式debug啊,强制转型 09/05 14:51
9F:→ Lipraxde: 估计是上网找到的方法 09/05 14:51
10F:→ Killercat: 不过以前的VS居然能过而且没runtime炸掉真是神蹟.... 09/05 16:14
11F:→ goodzey: 哈哈!的确是不熟悉才用这方法 09/05 20:48
12F:→ goodzey: 原专案多数人用LINUX上开发,少数用VS,所以一堆问题 09/05 20:52