VC++高手帮忙看看。
我现在要VC++中定义一个函数,功能很简单,形参是一个字符串,函数返回值就是该字符串。函数中传入一个字符串参数,函数返回该字符串。还要注意unicode问题,返回不能是乱码。我要把该参数封装成DLL,供其他语言调用,该如何编码?开发环境visual studio 2005。
[解决办法]
字符串要用TCHAR 类型 如果dll使用unicode编码形式的,那么调用dll的工程也得是unicode编码形式的
[解决办法]
- C/C++ code
string stringCopy(string src){ return src;}
[解决办法]
可以用com组件方式,可以做到多种语言通用的方法的
[解决办法]
如果直接返回不处理, 这个函数就没有必要。
你可以设计成如果是UNICODE字符串,直接返回,如果非UNICODE,转换成UNICODE再返回
[解决办法]
只传进了字符串,怎么判断是否UNICODE?普通的GB2312、GBK怎么和UNICODE区分?
[解决办法]
[解决办法]
问题就是没有可靠的判定方式。UNICODE也有两个字节最高位都为1的代码,虽说出现几率不高可终究是不可依赖的判定条件。
如果用双'\0'结束符作为判定条件就更危险了,因为只要传进的字符串曾经被strcpy过就一定会被认为是非UNICODE了。
[解决办法]