VB.net如何调用C++ DLL,有重谢
vb.net吧
全部回复
仅看楼主
level 1
有寻安 楼主
小弟一直做vb.net开发的,昨天老总让我们在vb.net中调用c++的一些代码,不知如何调用,网上查了些资料还是有点不懂,哪位大侠帮个忙给我写个简简单单的例子就好,有重谢,提供号码帮您冲20元话费,谢谢了
2014年02月23日 05点02分 1
level 10
一个叫MyDll.dll的类库,代码如下:
#include "stdafx.h"
#define POUT extern "C" __dec
lsp
ec(dllexport)
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
POUT int add(int i1,int i2){
return i1 + i2;
}
POUT int sub(int i1,int i2){
return i1 - i2;
}
POUT void showText(char* c){
MessageBox(hwnd,TEXT("C"),TEXT("Hello"),0);
}
VB.NET调用方法,跟调用其他系统API一样:
Declare Function add Lib "MyDll.dll" Alias "add" (i1 As Integer, i2 As Integer) As Integer

Declare Function [sub] Lib "MyDll.dll" Alias "sub" (i1 As Integer, i2 As Integer) As Integer
Declare Function mysub Lib "MyDll.dll" Alias "sub" (i1 As Integer, i2 As Integer) As Integer
Declare Sub showText Lib "MyDll" (text As String)
可以看出来VB.NET对于API调用的声明,写法很自由
更多详情参考MSDN:
http://msdn.microsoft.com/zh-cn/library/172wfck9(v=vs.90).aspx
2014年02月23日 06点02分 2
我看有些教程说原本叫add,编译时被改名为add@序号,这是真的吗
2014年03月01日 13点03分
回复 Nukepayload2 :不知道,我对C++研究不深 [乖]
2014年03月01日 14点03分
level 13
提醒楼主,visual c++ 10有个诡异的地方,double型编译后会变成long double型,我用ida 6.4验证过。
2014年03月02日 12点03分 3
动态调用dll怎么实现
2014年03月05日 02点03分
回复 123vavbvc : declare语句 --来自可以用水果刀发帖的 诺基亚 Lumia 625H
2014年03月05日 12点03分
1