typedef wchar_t WCHAR buf[1024] ; // code from C++ dll
如何在C#中定义上面的代码行?
答案 0 :(得分:2)
typedef只是一个类型的别名,另一个名称。 C#中没有别名。此声明在某种程度上等同于
char[] buf = new char[1024];
你可以在pinvoke声明中使用普通的char []并传递一个如上所示分配的数组。我会对这段代码保持谨慎,在全局命名空间中添加一个标识符“buf”会遇到麻烦。
答案 1 :(得分:1)
如果没有WCHAR
的定义,就无法对您发布的代码说任何话。但是,假设WCHAR
是某种类型的类型名称,您发布的代码不是有效的C ++代码。它根本不会编译为C ++代码。
与此同时,你似乎声称它来自某些“C ++ dll”。很可能你没有正确地重现原始代码。更新代码,因为它的当前形式使您的问题完全没有意义。
答案 2 :(得分:0)
C#没有typedef,因此您无法在C#中写入该行。如果你告诉我们你想做什么,也许有一个解决方案。但你问题的答案是:完全没有!