首页 > 解决方案 > 我应该在 DLL 导出函数上使用 __stdcall 吗?

问题描述

我正在使用 mingw-w64 用 C 语言编写一个小 DLL,它应该可以被 VB.net 程序调用。唯一的导出是其参数和返回类型是原始类型的函数。

我应该__stdcalldllexport功能上使用还是不使用?

在网上搜索时,我看到了有和没有它的例子。有关于它如何影响名称修饰的讨论,但没有关于这是否是一件好事以及对我的 DLL 可用性有什么影响的建议。

标签: cwindowsdllmingw-w64

解决方案


确实没有充分的理由在__stdcall任何地方使用非默认调用约定/ABI(或其他方式),除非您需要调用以这种方式定义的现有接口。这只是无端的丑陋。它在现有 Windows 的所有东西上都完成了,它是 Win16 时代的传统货物,并且没有实际的理由。


推荐阅读