通过P/Invoke返回Struct和String Array2011-10-30 博客园 magicdlfP/Invoke提供了方便的.NET和c++ dll交互接口,通过P/Invoke可以将native的对象转化成managed object,从而享受.NET带来的种种便利.但是,假如dll中返回的参数,不是形如int, double, bool这样可以直接转化为.NET类型的对象,又该如 何使用P/Invoke呢?比如我有这样一个接口:
1 #ifdef DLLPROJECT 2 #define DLLEXP __declspec(dllexport) 3 #else 4 #define DLLEXP __declspec(dllimport) 5 #endif 6 7 struct group 8 { 9 char* groupName;10 int userCount;11 char** userNames;12 };13 14 struct groupList15 {16 int count;17 group* groups;18 };19 20 extern "C"21 {22 DLLEXP groupList* getGroupList();23 }