LPCTSTR变量值错误(?)



我在一个c++项目中使用了这个方法

long CPPProject::CPPMethod(long lValue, LPCTSTR Data){
do something...
}

但是,当我通过c#项目使用该方法时,有时Data的值是'?'例如:

c#代码:

String sText1 = "u0110 u0110"; //Đ
object.CPPMethod(lValue, sText1);

在本例中,'Data'变量正确地接收了值(Đ)。

但是另一方面,如果代码是: c#代码:

String sText2 = "u8162 u8162";//腢 
object.CPPMethod(lValue, sText2);

'Data'的值是'?'

我将Data的值写入日志文件。

为什么会有这种行为?我需要修复什么?

我将LPCTSTR替换为LPCWSTR

基本上是因为;LPCWSTRconst WCHAR *,LPCTSTRTCHAR *,此外,在DISP_FUNCTION中,VTS_BSTR必须更改为VTS_WBSTR

执行此操作后,收到的值没有错误

最新更新