好的,在你的帮助和相当多的谷歌之后,这终于有效了!
这是一个破败,如果它在未来帮助其他任何人:
>使用Ultimate Header File获取有关如何创建头文件的蓝图.
>重要的是要理解如何编译C不会命名mangle,而编译为C将.
>看起来DevC有一个简洁的BUILDING_DLL标志,但Visual Studio要求你在main.c文件中创建一个定义.
> __stdcall执行一个名为“名称修饰”的东西,它与名称修改不同,但仍会更改您的函数名称.感谢@slugonamission给我一个指针.最终在使用dumpbin.exe时单击,如@HansPassant所示.
>所以,切换到__cdecl设法避免名称修饰,并在C中编译(或使用extern并在C中编译)避免名称修改.
>和dll最终会给我CalcGraph作为一个有效的切入点!
隐式/显式dll链接是一个非常重要的区别.隐式链接需要.lib文件,.dll以及.h文件.明确的链接是我所追求的 – 你可以自己逃脱.dll.感谢@squelos解释此链接.
最后但并非最不重要:
在DLL中:
extern _COMPILING_ void __cdecl CalcGraph(PanelParameters *, Calculations *);
并在VB代码中:
Imports System.Runtime.InteropServices
Private Declare Sub CalcGraph Lib "myDLL.dll" (ByRef params As Parameters, _
ByRef calcs As Calculations)
它终于奏效了!