最近研究 com组件的 调用语言是c#
STDMETHODIMP CStrHelper::ReadMemoryTokey(BSTR PId, BSTR Key, BSTR* strarray)
{
// TODO: 在此处添加实现代码
///Pid转换
CString a = PId;
//字符串转整数
int i = _ttoi(a);
//字符串转16进制字符串
string strTemp = dec2hex(i);
CString strPId =(CString)strTemp.c_str();
//16进制字符串转DWord
DWORD DPId = _tcstoul(strPId, NULL, 16);
//key转换
CString Sttkey = Key;
int len = (Sttkey.GetLength() / 3) + 1;
BYTE *Refbyte = new BYTE[len];
int a5 = strToarray(Key, Refbyte);
byte* key = strToarray(Key);
std::string *str = new string();
BOOL a3 = SearchMemory(DPId, Refbyte, len, str);
CString refstr(*str->c_str());
*strarray = refstr.AllocSysString();
COM的值是 {0x0101269c L"521324"}
c# 返回的值是 52
代码 就是这么一个代码 但是 我c#那边 返回到的字符串 只有前2位 实在不知道原因 希望有大佬解下疑惑