可以pinvoked的C# dll吗?

发布于 2024-09-26 08:06:10 字数 281 浏览 6 评论 0原文

问题:是否可以编写一个可以 pinvoked 的 C# dll?

我想为 WinAPI 调用 WritePrivateProfileString 等编写一个替换库,以读取和写入 ini 文件。

是否可以导出一个用 C# 实现的函数,例如“WritePrivateProfileString”,以便可以使用 DllImport pinvoke dll?

我想用托管 dll 替换本机 dll,因此托管 dll 由 pinvoke 调用调用(而不是本机 dll,当托管 dll 位于 bin 目录中时)。

Question: Is it possible to write a C# dll that can be pinvoked ?

I want to write a replacement library for the WinAPI calls WritePrivateProfileString etc. for reading and writing ini files.

Is it possible to export a function, e.g. 'WritePrivateProfileString', implemented in C# so one can pinvoke the dll with DllImport ?

I want to replace the native dll with a managed dll, so the managed dll gets called by the pinvoke call (instead of the native dll, when the managed dll is in the bin directory).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

愁以何悠 2024-10-03 08:06:10

与普遍看法相反,这是可能的。 (请注意,您需要修改调用应用程序才能从 DLL 导入)
请参阅此处

但是,就您而言,这不一定是个好主意。
为什么不将 extern 声明更改为调用替换的普通方法?

Contrary to popular belief, this is possible. (note that you'll need to modify the calling application to import from your DLL)
See here.

However, in your case, it's not necessarily a good idea.
Why don't you change the extern declarations to normal methods that call your replacements?

甜点 2024-10-03 08:06:10

这并不容易,但可以通过使用一些“黑客”

但是 COM 对您来说可能是一个更好的选择,因为很容易从 C# 导出 com 对象并使用 VB6 中的 com 对象。然后将 extern 声明更改为调用的普通方法你就是你的com对象。

This is not easy, but it can be done with the use of a few “hacks”

However COM may be a better option for you, as it is easy to export a com object from C# and to use com objects from VB6. Then change the extern declarations to normal methods that call you’re your com objects.

梦幻的味道 2024-10-03 08:06:10

尝试使用 Mono Cecil 将第三方程序的 extern 方法更改为调用 DLL 的方法(无需 P/Invoke)。

反射器在这里会有所帮助。

Try using Mono Cecil to change the third-party program's extern methods to methods that call your DLL (without P/Invoke).

Reflector will help here.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文