本文介绍了中文返回缓冲区的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的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!


这篇关于中文返回缓冲区的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-05 10:26