我是C#和visual studio的新手。我有一个C#GUI,它将参数传递给从C ++ DLL导出的函数。 Visual Studio 2005中的平台。
我在c ++ DLL中有一个函数,它接受以下类型的参数: UINT8 UINT16 LPCWSTR someword(以下内容已在c + = dll中定义:typedef void * someword..so基本上someword只是一个void指针。)
你能帮我解决一下如何将参数从我的C#GUI传递到从DLL导入的这个函数。我知道必须使用MarshalAs完成,但我不知道如何。 c ++ dll也是不受管理的。任何帮助都会被贬低。
谢谢, Viren
答案 0 :(得分:1)
您能否通过提供C ++ DLL的签名来帮助我们?对于您指定的类型,这里是正确的类型
你有没有检查过PInvoke Interop助手?它旨在通过将C ++签名转换为等效的DLL导入
来帮助人们完成这些场景答案 1 :(得分:0)
尝试这样的事情:
[DllImport("lib.dll")]
public static extern int FunctionName(IntPtr somevariable, ushort var1, byte var2, byte var3, byte var4, [MarshalAs(UnmanagedType.LPWStr), In] string str1, [MarshalAs(UnmanagedType.LPWStr), In] string str2);