Welcome

首页 / 软件开发 / .NET编程技术 / 通过P/Invoke返回Struct和String Array

通过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 }