[align=center]
我在编写RPC的初始化函数其中调用了这么一个函数
status=RpcStringBindingComposeA(NULL,
(unsigned char * )pszProtocolSequence,
(unsigned char * )pszNetworkAddress,
(unsigned char * )pszEndpoint,
(unsigned char * )pszOptions,
&pszStringBinding);
问题一:因为我的程序需要使用Unicode编码,而函数实际返回的pszStringBindingUnicode是unsigned char *类型的,可unsigned char *好像在Unicode中会丢失字符,怎么办,用TCHAR吗,具体怎么转,我这样转好像输出的会是乱码TCHAR* pszStringBindingUnicode=(TCHAR*)pszStringBinding 。
问题二:本来RpcStringBindingComposeA函数应该是RpcStringBindingCompose的,但RpcStringBindingCompose的定义是
#ifdef UNICODE
#define RpcStringBindingCompose RpcStringBindingComposeW
#else /* UNICODE */
#define RpcStringBindingCompose RpcStringBindingComposeA
#endif /* UNICODE */
而我需要用RpcStringBindingComposeA的,因为RpcStringBindingComposeA里面的参数是unsigned char *类型的,而RpcStringBindingComposeW中的参数是unsinged short *的,我想用unsigned *,所以只能直接写RpcStringBindingComposeA,请问大家遇到这类问题是都是这么做的吗?为什么Unicode要这样定义啊?
分数没有了,但希望大家能帮帮忙,谢谢![/align]