首页
社区
课程
招聘
如何利用VB2008正确调用VC2008写的DLL
发表于: 2010-9-27 21:33 10310

如何利用VB2008正确调用VC2008写的DLL

2010-9-27 21:33
10310
用VC++2008建立了一个动态链接库,希望能供VB2008调用,但总是出错(VB2008与VC2008皆为速成版),下面是代码部分,请各位耐心看完.

---------------这是AddDll.cpp中的代码----------------

#include "winuser.h"

#include "stdafx.h"

#include "AddDll.h"

// 这是我的测试函数。

ADDDLL_API int __stdcall fnAddDll(int a, int b) { return a+b; }

--------------------------这是AddDll.h中的代码----------------------

#ifdef ADDDLL_EXPORTS

#define ADDDLL_API __declspec(dllexport)

#else #define ADDDLL_API __declspec(dllimport)

#endif extern ADDDLL_API int __stdcall fnAddDll(int a,int b);

------------------------这是def中的代码---------------------

LIBRARY AddDll EXPORTS fnAddDll @1

-------------------------这是VB2008中的代码----------------

Public Class Form1 Private Declare Function fnAddDll Lib "AddDll.dll" (ByVal a As Integer, ByVal b As Integer) As Integer

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim a As Integer

Dim b As Integer

Dim c As Integer

c = fnAddDll(a, b)

MsgBox(c)

End Sub

End Class

-------------------------------这是VB2008应用程序运行之后的提示--------------------------

Unable to find an entry point named 'fnAddDll' in DLL 'D:\Visual C++ 2008\AddDll\Release\AddDll.dll'.

这个提示大概是说找不到所调用函数的入口.就想用VC++2008写DLL,然后用VB2008进行调用,但是无论怎么努力都出错,本人是刚接触VS系列,希望 各位高手,能抽出空闲给出解答,最好能给出VC2008写DLL的步骤以及VB2008调用的详细步骤与说明,小生在此先谢过了.

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 998
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
try extern "C"
2010-9-28 02:16
0
雪    币: 199
活跃值: (65)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
3
楼上正解,占座得分!
2010-9-28 05:34
0
雪    币: 33
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
VC2008编译成托管类的话,直接项目里右键‘引用’即可。
VC2008编译成非托管类,就和引用一般的DLL一样。
-----------
补充一下。
2010-9-28 07:43
0
雪    币: 163
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谢谢各位的指点,我试试先.
2010-9-28 08:21
0
雪    币: 163
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
你好,我按你的方法试了,可还是不行.还是提示找不到入口点,能请你写的详细一点吗?再次谢过
2010-9-28 08:29
0
雪    币: 163
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
HeddaZ ,能请你举个例子吗?或者说的更详细一点,本人新手,不好意思
2010-9-28 08:31
0
雪    币: 163
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
谢谢各位的回复,问题我已经解决了,是我自己没有看清楚,二楼的兄弟说的很正确.谢谢了.
2010-9-28 14:19
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
首先用Depends查看一下你的Dll中是否已正确输出你要的函数,有的话对比VB中的函数名是否正确
2013-9-23 14:58
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
另外VB6要用long对应VC的int,VB2008不知道Integer是否已改成4字节
2013-9-23 15:00
0
游客
登录 | 注册 方可回帖
返回
//