请问一个有关调用VC 写的DLL的问题。

liu_zhi_bin 2002-09-19 03:19:30
在VB中,我们可以通过下列步骤来调用一个用VB写的DLL: 1. 编译DLL文件; 2. 注册DLL文件; 3. 用CreateObject("ProjectName.ClassName")调用。

请问,若想在VB中调用VC写的DLL,也可这样吗?如果可以,请指点前面二步。谢谢!
...全文
28 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
liu_zhi_bin 2002-09-25
  • 打赏
  • 举报
回复
up
liu_zhi_bin 2002-09-24
  • 打赏
  • 举报
回复
up
jackieji 2002-09-23
  • 打赏
  • 举报
回复
up
sharp_shooter 2002-09-23
  • 打赏
  • 举报
回复
俺看了那么多书,怎么看起来还是有点晕星????????@_@
albert 2002-09-23
  • 打赏
  • 举报
回复
Please see the following sample:



1、在VC++中新建MFC AppWizard(DLL)工程vcdll:
vcdll.cpp的代码如下:
#include "stdafx.h"
#include "vcdll.h"

long sum1(); //无参类型
extern "C" int APIENTRY sum2(int i); //从VB中接收一个参数
extern "C" long APIENTRY sum3(int i,int j); //从VB中接收两个参数

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

BEGIN_MESSAGE_MAP(CVcdllApp, CWinApp)

END_MESSAGE_MAP()

CVcdllApp::CVcdllApp()
{
}

CVcdllApp theApp;

long sum1()
{ return 100+200; }

extern "C" int APIENTRY sum2(int i)
{ i+=100;
return i;
}

extern "C" long APIENTRY sum3(int i,int j)
{ return i+j;
}

2、在vcdll.def中的代码如下:
LIBRARY "vcdll"
DESCRIPTION 'vcdll Windows Dynamic Link Library'

EXPORTS
; Explicit exports can go here
sum1
sum2
sum3
3、在编译后,把vcdll.dll拷贝到Windows目录下。
4、VB中新建标准EXE工程vb_vcdll,vb_vcdll.frm的代码如下:
Private Declare Function sum1 Lib "vcdll.dll" () As Long
Private Declare Function sum2 Lib "vcdll.dll" (ByVal i As Integer) As Integer
'声明VC库中的函数
Private Declare Function sum3 Lib "vcdll.dll" (ByVal i As Integer, ByVal j As
Integer) As Long

Private Sub Command1_Click()
Text1.Text = sum1() '调用VC函数
End Sub

Private Sub Command2_Click()
Text1.Text = sum2(110)
End Sub

Private Sub Command3_Click()
Text1.Text = sum3(100, 250)
End Sub

liu_zhi_bin 2002-09-23
  • 打赏
  • 举报
回复
Who can give me a sample?
liu_zhi_bin 2002-09-23
  • 打赏
  • 举报
回复
albert()兄的Sample很好,只是与我的问题的真实意图有点差距。不过,你的务实精神让我感动,我没有理由不给你分。当问题结束时,决不食言。欢迎大家继续参与。
panda_w 2002-09-20
  • 打赏
  • 举报
回复
http://www.codeguru.com/dll/vbString.shtml
liu_zhi_bin 2002-09-20
  • 打赏
  • 举报
回复
上面几位兄弟介绍的相关链接,我都看了,但帮助不大。不过,还是谢谢你们的热心。
我是一个VC初学者,所以,如果有一个详细的Sample,对我的帮助将最直接。
nuaazwg 2002-09-20
  • 打赏
  • 举报
回复
哦,这次总结的很好哦。
liu_zhi_bin 2002-09-20
  • 打赏
  • 举报
回复
up
oldworm 2002-09-19
  • 打赏
  • 举报
回复
vc写的dll有传统型dll、mfc扩展dll、com型dll,传统型dll和com dll在vb中都能直接使用,com型dll和你说的那种调用方式类似,传统型的dll和调用api类似,写传统型dll的时候要注意类型,如bool型在vc中是一个字节,不方面在vb中使用,应该用BOOL类型,同类问题都要注意,还有就是字符串。
ypos 2002-09-19
  • 打赏
  • 举报
回复
http://www.china-askpro.com/msg1/qa72.shtml
看看吧
rivershan 2002-09-19
  • 打赏
  • 举报
回复
只要VC写的dll够标准~那就可行……
http://www.csdn.net/expert/topic/1034/1034807.xml?temp=.8516352
看这个~希望有帮助~

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧