C# 不安全上下文/LPWStr 的指针类型
假设我们有一个不安全的上下文,因为我想要一个指向从非托管 C++ 代码传递的 wchar_t 参数的指针。例如:
unsafe public(int* A, ???* B)
{
_myInt = A;
_myString = B;
}
int 参数一切都很好,但是 ???* 类型呢? 我知道要将此方法将 wchar_t 编组为 C# 字符串类型,可以在参数 B 之前写入 [MarshalAs(UnmanagedType.LPWStr)]。 但我需要 B 的某种本机指针类型,以便将此指针链接到 _myString 字段。 C# 中是否有类似 wchar_t 的东西,或者我还能做些什么来将指针 B 存储在类中的其他位置? 谢谢, 于尔根
suppose we have an unsafe context, because I want to have a pointer to a wchar_t parameter which is passed from a unmanaged C++ code. For example:
unsafe public(int* A, ???* B)
{
_myInt = A;
_myString = B;
}
Everything is fine with the int parameter, but what about the ???* type?
I know that to marshal a wchar_t to a C# string type for this method, one can write [MarshalAs(UnmanagedType.LPWStr)] before the parameter B.
But I need some kind of a native pointer type for B in order to link this pointer to _myString field.
Is there something like wchar_t in C# or what else can I do to have the pointer B stored elsewhere in the class?
Thanks,
Jurgen
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
除非您在构造字符串期间在 C# 复制指针后面的字符串时遇到问题...您可以像这样完成它:
此处使用的构造函数记录在 MSDN
Unless you have a problem with c# copying the string behind the pointer during the construction of a string... you can pull it off like this:
The constructor used here is documented in MSDN