c++ dll 返回数组
时间: 2023-08-03 07:08:54 浏览: 265
可以使用以下步骤来实现 C++ DLL 返回数组:
1. 在 DLL 中定义一个函数,该函数返回一个指向数组的指针。
2. 在调用该函数的应用程序中,先使用 LoadLibrary 函数加载 DLL,再使用 GetProcAddress 函数获取该函数的地址。
3. 在应用程序中调用该函数,并将返回的指针转换为正确的数组类型。
以下是一个简单的示例代码:
DLL 中的函数:
```c++
// 定义一个返回 int 数组的函数
extern "C" __declspec(dllexport) int* __stdcall GetIntArray(int size)
{
int* arr = new int[size];
for (int i = 0; i < size; i++)
{
arr[i] = i;
}
return arr;
}
```
应用程序中调用该函数:
```c++
// 加载 DLL
HINSTANCE hinstDLL = LoadLibrary(TEXT("mydll.dll"));
// 获取函数地址
FARPROC fnGetIntArray = GetProcAddress(hinstDLL, "GetIntArray");
// 调用函数
int* arr = ((int*(__stdcall*)(int))fnGetIntArray)(10);
// 输出数组
for (int i = 0; i < 10; i++)
{
std::cout << arr[i] << " ";
}
// 释放内存
delete[] arr;
// 卸载 DLL
FreeLibrary(hinstDLL);
```
注意,为了避免内存泄漏,需要在调用完函数后手动释放返回的数组内存。
阅读全文