本文介绍了中文返回缓冲区的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的C Dll具有许多功能.其中一些通过char缓冲区返回非常大的数字.我在这些缓冲区中得到中文.我该如何安排这些缓冲区以获取缓冲区中的数字而不是中文符号?
I have C Dll with number of functions. Some of them return very big numbers by char buffers. I get Chinese in these buffers. What can I do for arranging these buffers for getting numbers in buffer and not Chinese symbols?
推荐答案
int __stdcall RSA_EncryptMessage_Ex(char * pmsg, BSTR* bstrM, int nMsgSz, int nBits)
{
int iSize = 0;
wchar_t wcstring[KEYSIZE];
if (RSA_EncryptMessage(chM, pmsg, chN, chD, chE, nMsgSz, nBits) != 0)
return -1;
iSize = 2*strlen(chM);
_snwprintf(wcstring, iSize, L"%S (wchar_t *)", chM);
*bstrM = SysAllocStringByteLen((LPCSTR)wcstring, iSize);
return 0;
}
首先,通过参考变量.必须为BSTR类型.
其次,我将字符数组转换为宽字符. BSTR.这样就可以了!
First, variables by ref. must be of the type BSTR.
Second, I transformed the char array to wide char. BSTR. So, it''s working!
这篇关于中文返回缓冲区的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!