如何避免VisualC++对我的DLL函数的名称进行篡改
我也有同样的问题。我使用Visual C++快件2010。 我试图声明extern C,并更改选项Project+Properties、Linker、Debug、Generate Debug Info=No。我的函数名在每次编译时都会被损坏 我将调用约定从StdCall更改为Cdecl,然后我的函数名在编译的dll中是正确的。但是我需要StdCall,因为在使用其他调用约定时,我使用的是来自VB6 VB6的dll。所以,每次我使用StdCall调用约定编译时,我的函数名都会再次被破坏 如何避免函数名被StdCall调用约定弄乱?或者有没有一种方法可以使用VB6中的cdecl调用约定调用Dll中的函数?在我发现可能无法避免使用StdCall调用约定造成名称混乱之后 我想从VB6调用我的函数,所以这里有一个实际可行的解决方法: 使用别名声明函数:如何避免VisualC++对我的DLL函数的名称进行篡改,c++,visual-studio-2010,dll,vb6,C++,Visual Studio 2010,Dll,Vb6,我也有同样的问题。我使用Visual C++快件2010。 我试图声明extern C,并更改选项Project+Properties、Linker、Debug、Generate Debug Info=No。我的函数名在每次编译时都会被损坏 我将调用约定从StdCall更改为Cdecl,然后我的函数名在编译的dll中是正确的。但是我需要StdCall,因为在使用其他调用约定时,我使用的是来自VB6 VB6的dll。所以,每次我使用StdCall调用约定编译时,我的函数名都会再次被破坏 如何避免函
Declare Function prettyname Lib "mydll.dll" Alias "_prettyname@16" () As Integer
当然,最好使用extern C,这样名称就不会被严重损坏。如果名称看起来像_function@16那么它是正确的。我用这种格式获取名称,但VB6抱怨u和@字符: