gpt4 book ai didi

c# - 在 C# 中使用 pinvoke 从动态链接库调用成员级函数?

转载 作者:行者123 更新时间:2023-11-28 01:12:04 25 4
gpt4 key购买 nike

我如何使用 DLLImport pinvoke 调用我在非托管 DLL 的类中编写的函数?它总是抛出 dll 中不存在入口点。例如:

class Foo
{
int __declspec(dllexport) Bar() {return 0;}
};

Bar 属于 Foo 类。当我将 pinvoke 用作:

[DLLImport("Test.dll")]
public static extern int Bar();

当使用它时,我得到一个异常,提示 DLL 中不存在入口点。是否可以直接从类中调用函数?

最佳答案

不容易...

要调用成员函数,第一个“隐藏”参数必须是指向您正在调用的成员函数的 C++ 类的指针。

而 C++ 函数是名称错误的,因此您需要找到您正在调用的函数的名称错误的名称。

简而言之:创建 C++ 类的 C++/CLI 包装器来执行此操作会更容易。

关于c# - 在 C# 中使用 pinvoke 从动态链接库调用成员级函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2361040/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com