VB VC混合编程第一步

来源:互联网 发布:淘宝义卖 编辑:程序博客网 时间:2024/04/29 17:39

大家都知道 C++是在很多地方能够取代汇编语言的半低级语言,

C++开发的代码具有很高的运行效率.

VB是基于控件的程序开发,将程序开发的难度和复杂程度降到最低,

但是会受到控件功能本身的限制,自身代码运行也不高,然而API函数的

实现可以使VB能够调用高效的动态链接库代码,下面就简单举个例子:

 

VC++6.0开发动态链接库

新建工程,选择 Win32 Dynamic Link Library,取名叫yxMath //游侠数学,呵呵

选择 A Simple Dll //一个简单的DLL 系统会帮你写好入口,其实也就3行代码

然后在 yxMath.cpp 写下这些:

 

#include "stdafx.h"                                          //包含标准afx头文件 stdafx.h

#define CUSTOM_API __declspec(dllexport)    //定义接口类型
CUSTOM_API int __stdcall MyFun(int a,int b);  //声明API接口
int __stdcall GetSum(int intX,int intY)               //声明一个函数,求两个数的和
{
    return intX+intY;
}

//下面的是 Dll 主入口函数,系统自动给的,如果选择 A empty dll 则需要自己添加.

BOOL APIENTRY DllMain( HANDLE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
      )
{
    return TRUE;                                                 //管他什么连接一律返回 true
}

新建文件,选择C++ Source File (即源文件) 取名 APIXports.def

在里面输入以下内容:

EXPORTS
GetSum                                                             //输出这个函数,可以分行写多个

 

然后保存直接构建 yxMath.Dll               0 error(s) 0 warning(s)

 

运行 Visual Basic 6.0

创建一个标准 exe工程

两个Textbox 再一个CommandButton 再一个Textbox

开始写代码:

 

'API函数声明

Private Declare Function GetSum Lib "yxMath.dll" (ByVal intX As Integer, ByVal intY As Integer) As Integer  

'按钮的事件

Private Sub Command1_Click()
Text3.Text = Str(GetSum(Val(Text1.Text), Val(Text2.Text)))
End Sub

 

生成 工程1.exe 将程序和yxMath.Dll 放在同一个目录下(别再问我目录是什么)

运行程序,输入1 2 点一下按钮 看结果是什么 Oh Yeah

今天能算1+1 明天超过计算机

今天能用VBC 明天统治全领域