创建dll,在c#和c++工程中都可以被同时调用,c#如何调用,c++如何调用
时间: 2023-12-12 21:05:51 浏览: 112
创建 DLL 可以使用 C++ 代码,然后在 C# 和 C++ 工程中都可以被调用。下面是如何在 C# 和 C++ 中调用 DLL 的方法:
在 C# 中调用 DLL:
1. 在 C# 代码中使用 DllImport 属性引入 DLL 文件,使用 extern 关键字声明外部函数。
2. 调用外部函数即可。
示例代码如下:
```
[DllImport("MyDll.dll")]
public static extern int MyFunction(int a, int b);
int result = MyFunction(10, 20);
```
在 C++ 中调用 DLL:
1. 使用 #include 指令包含 DLL 的头文件。
2. 使用 LoadLibrary 函数加载 DLL,使用 GetProcAddress 函数获取 DLL 中的函数地址。
3. 调用获取到的函数地址即可。
示例代码如下:
```
#include <iostream>
#include <windows.h>
using namespace std;
typedef int (*MyFunctionType)(int, int);
int main()
{
HINSTANCE hinstLib = LoadLibrary("MyDll.dll");
if (hinstLib == NULL) {
cout << "Failed to load DLL" << endl;
return 1;
}
MyFunctionType MyFunction = (MyFunctionType)GetProcAddress(hinstLib, "MyFunction");
if (MyFunction == NULL) {
cout << "Failed to get function address" << endl;
FreeLibrary(hinstLib);
return 1;
}
int result = MyFunction(10, 20);
cout << "Result: " << result << endl;
FreeLibrary(hinstLib);
return 0;
}
```
注意:在 C++ 中调用 DLL 时需要注意编译器的位数和 DLL 文件的位数必须一致,否则可能会出现无法加载 DLL 的问题。
阅读全文