Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C和x2B之间的互操作+;和C#_C#_C++_Interop_Struct - Fatal编程技术网

C和x2B之间的互操作+;和C#

C和x2B之间的互操作+;和C#,c#,c++,interop,struct,C#,C++,Interop,Struct,我用C++编写了这个struct: struct TEXTMSGSTR { HWND Sender; wchar_t Text[255]; //wchar_t *Text; }; 在C#中: 我将其作为COPYDATASTRUCT消息的一部分从非托管代码发送到托管代码。C端的结构的正确构造是什么,因为C没有wchar\t?我尝试了字符串等,但当然会出现错误 有谁能给我一些关于如何处理这件事的想法吗?因为我对这件事还不熟悉 TEXTMSGSTR tx = (TEXTMSG

我用C++编写了这个
struct

struct TEXTMSGSTR
{
    HWND Sender;
    wchar_t Text[255];
    //wchar_t *Text;
};
在C#中:

我将其作为
COPYDATASTRUCT
消息的一部分从非托管代码发送到托管代码。C端的
结构
的正确构造是什么,因为C没有
wchar\t
?我尝试了字符串等,但当然会出现错误

有谁能给我一些关于如何处理这件事的想法吗?因为我对这件事还不熟悉

TEXTMSGSTR tx = (TEXTMSGSTR)Marshal.PtrToStructure(cds.lpData, typeof(TEXTMSGSTR));
尝试
LPTStr
ByValTStr


另外,请看我对

的回答,当您使用字符串时,您会遇到什么样的错误?您应该查看您的所有答案。:)如果只使用直字符串而不使用编组部分,则会导致内存损坏。Randolpho,我会查看链接。谢谢你的回复。谢谢Mehrdad,效果很好。我真的需要读这方面的文章,这并不容易!谢谢。我会查看链接的,我真的需要了解这些东西。我可以发布消息,只是当我开始整理信息时,我真的很困惑。谢谢
TEXTMSGSTR tx = (TEXTMSGSTR)Marshal.PtrToStructure(cds.lpData, typeof(TEXTMSGSTR));
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct TEXTMSGSTR
{
    public IntPtr Sender;
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 255)]
    public string Text;
}