转换类型

时间:2011-04-10 19:40:30

标签: c# c++

typedef wchar_t WCHAR buf[1024] ; // code from C++ dll

如何在C#中定义上面的代码行?

3 个答案:

答案 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#中写入该行。如果你告诉我们你想做什么,也许有一个解决方案。但你问题的答案是:完全没有!