gpt4 book ai didi

c# - 具有 dllimport 的多个参数的不同字符集

转载 作者:搜寻专家 更新时间:2023-10-31 01:58:05 27 4
gpt4 key购买 nike

是否可以为单独的参数声明不同的字符集选项?

我的意思是:

[dllimport("my.dll", charset = charset.Ansi)]
void myfunc(string CharPtrInCPP, StringBuilder WCharPtrInCPP);

问题是 C++ 函数接受一个 char* 作为文件名,一个 wchar* 作为接收回来的数据...

在 C++ 中:

void myfuncImpl(char *filename, WCHAR *buffer, int len); 
//another method, myfunc, wraps this

最佳答案

如前所述,您应该能够为每个参数指定 MarshalAs。另一种方法是指定默认字符集类型,然后指定奇数字符集的编码。例如,

  [DllImport("my.dll", CharSet=CharSet.Unicode)]
void myfunc( [MarshalAs( UnmanagedType.LPStr )] String filename,
StringBuilder buffer, int len );

关于c# - 具有 dllimport 的多个参数的不同字符集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4631267/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com