gpt4 book ai didi

c# - 源 C dll 中是否需要 dllexport 才能通过 [DllImport] 在 C# 中使用?

转载 作者:行者123 更新时间:2023-11-30 19:16:11 27 4
gpt4 key购买 nike

我正在尝试围绕 C.dll(pbmman32.dll,如果有人熟悉它)编写一个包装函数以与 c# 一起使用。

查看源代码的头文件,尽管它们确实使用了 extern "C"{},但它们似乎并未实现 __declspec(dllexport)。我仍然可以在缺少 dllexport 行的情况下调用该 dll 中的函数吗?

例如:

BOOL PBM_Version (TCHAR* Buffer, WORD* Version, DWORD Size)

进入:

[DllImport("pbmman32.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Auto)]
public static extern bool PBM_Version(StringBuilder Buffer, StringBuilder Version, System.UInt32 Size);

最佳答案

__declspec(dllexport) 是将函数标记为可导出的便捷方法,但这不是唯一的方法(例如,它们可能已使用 .def 文件导出。

您应该能够查询 DLL 以获取所有导出的函数(您可以使用类似 http://www.dependencywalker.com/ 的东西)。如果您要调用的电话已导出,那么您就可以开始了。

关于c# - 源 C dll 中是否需要 dllexport 才能通过 [DllImport] 在 C# 中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30880042/

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