C#调用C++动态库结构体函数得到所有结构体信息,旷世难题,高手请进!!!!!!!!!1
C++中有
typedef struct Student
{
char name[24];
int age;
}StudentInfo;
int GetStudentInfo(StudentInfo * pStudentInfo);//返回学生结构体个数
上面的函数存在于Student.dll中,下面要在C#里调用Student.dll中的这个函数:
public struct Student
{
public char[] name;
public int age;
}
[DllImport("Student.dll",CharSet = CharSet.Ansi)]
public static extern int(ref Student refStudent);
Student ref_student = new Student();
int count = GetStudentInfo(ref ref_student);//这里取得学生结构体的个数
char[] cname;
cname=new char[24*count];
for(int i=0;i<count;i++)
{
cname[i]=ref_student.name //这里怎样写呢?我要通过这个循环得到所有结构体里的学生名字????
}
typedef struct Student
{
char name[24];
int age;
}StudentInfo;
int GetStudentInfo(StudentInfo * pStudentInfo);//返回学生结构体个数
上面的函数存在于Student.dll中,下面要在C#里调用Student.dll中的这个函数:
public struct Student
{
public char[] name;
public int age;
}
[DllImport("Student.dll",CharSet = CharSet.Ansi)]
public static extern int(ref Student refStudent);
Student ref_student = new Student();
int count = GetStudentInfo(ref ref_student);//这里取得学生结构体的个数
char[] cname;
cname=new char[24*count];
for(int i=0;i<count;i++)
{
cname[i]=ref_student.name //这里怎样写呢?我要通过这个循环得到所有结构体里的学生名字????
}
...全文
相关推荐
C#调用C++动态库,执行回调函数并传递结构体参数
当C++动态库接收到回调函数和结构体后,它可以在合适的时间调用回调函数,并传递修改后的结构体数据。回调函数执行完毕后,C++动态库需要释放分配的内存。
C#调用C++封装成DLL的结构体及类
对于结构体和类,C++的结构体可以被直接导出,但类需要特别处理,因为C#不支持C++的多态性。1.
基于C#调用c++Dll结构体数组指针的问题详解
基于C#调用C++ Dll结构体数组指针的问题详解C#调用C++ Dll文件是一件很麻烦的事情,首先面临的是数据类型转换的问题。
Demo: c/c++动态库(DLL)调用,c#等其他语言调用c/c++的DLL
本示例探讨了如何通过C/C++编写的动态链接库(DLL)实现跨语言调用,特别是C#等其他语言对C/C++ DLL的调用。下面将详细介绍这个过程中的关键知识点。1.
C#调用C++ Dll关于结构体数组引用的传递及解析使用的展示代码
本文将详细介绍如何在C#中正确地调用一个C++ DLL,特别是关注于结构体数组的传递及解析。#### C++ DLL定义首先,我们来看一下C++ DLL中定义的结构体和函数。


