`

一个VB调用VC动态库的例子

 
阅读更多

VC动态库的接口如下:

#ifdef IMSENCRYPT_EXPORTS
#define IMSENCRYPT_API __declspec(dllexport)
#else
#pragma comment(lib,   "IMSEncrypt.lib") 
#define IMSENCRYPT_API __declspec(dllimport)
#endif

IMSENCRYPT_API int __stdcall Encrypt(char * returnval, const char * src, int src_len = 0); 
IMSENCRYPT_API int __stdcall Decrypt(char * returnval, const char * src, int src_len = 0);
IMSENCRYPT_API void __stdcall STest(const char * testval);

 

函数参数如下:

Encrypt(char * returnval, const char * src, int src_len = 0)

returnval: 返回的结果字符串

src:           待处理的源字符串

src_len:  源字符串长

 

Decrypt(char * returnval, const char * src, int src_len = 0)

returnval: 返回的结果字符串

src:           待处理的源字符串

src_len :  源字符串长

 

VB调用时函数声明如下:

'Encrypt使用说明:
'    这里传参直接以ByVal方式传参,但需注意的接受返回值的参数必须先初始化足够大的空间,例如:
'    dest = String(255, Chr(0))
'   参数说明:
'     ByVal dest As String:接收返回的结果
'     ByVal src As String:待加密字符串
'     ByVal length As Long:源字符串长度,如果设置为0,则由DLL内部计算
'     返回值(Integer):返回的结果字符串长度
Private Declare Function Encrypt Lib "IMSEncrypt" (ByVal dest As String, ByVal src As String, ByVal length As Long) As Integer

'Decrypt使用说明:
'    这里传参直接以ByVal方式传参,但需注意的接受返回值的参数必须先初始化足够大的空间,例如:
'    dest = String(255, Chr(0))
'   参数说明:
'     ByVal dest As String:接收返回的结果(明文)
'     ByVal cipher As String:待处理字符串(密文)
'     ByVal length As Long:源字符串长度,如果设置为0,则由DLL内部计算
'     返回值(Integer):返回的结果字符串长度
Private Declare Function Decrypt Lib "IMSEncrypt" (ByVal dest As String, ByVal cipher As String, ByVal length As Long) As Integer

 

这里要注意的点是:

1、接受返回值的参数以ByVal方式传递即可

2、接受返回值的变量必须先初始化,并足够容纳返回值

分享到:
评论

相关推荐

    VB调用VC所写的DLL动态库

    本资源含有VB6.0源程序文件及VC6.0源程序文件。实现的是VC下所制作的DLL库给VB调用。非常简单的例子ADD(),省去理解细节,直奔主题,给你一个圆满的解密VB调用VC动态库DLL的答案。一个字爽。

    VB调用VC生成的

    本文将深入探讨如何使用VB调用VC生成的动态链接库(DLL),以及在两者之间进行指针传递和数组传递的关键知识点。 首先,我们需要理解DLL的作用。DLL是一种可重用的代码库,可以被多个程序同时调用,以减少内存占用...

    VC 调用VB控件的例子.rar

    本示例“VC 调用VB控件的例子”提供了一个具体的实践教程,帮助开发者了解如何在C++程序中嵌入并调用VB控件。下面将详细阐述这一过程的关键知识点。 首先,理解跨语言调用的基础。VB控件本质上是COM(Component ...

    VB调用VC中建立的DLL例子程序

    本教程通过一个具体的例子,将展示如何在VB中调用VC创建的DLL。 首先,我们来看VC如何建立DLL。在VC环境中,创建DLL项目通常涉及以下步骤: 1. 打开Visual C++,选择“新建”项目,然后选择“Win32 Dynamic-Link ...

    vb 调用 vc dll 最简单的例子了。

    在配置属性中,确保选择“动态库(.dll)”作为输出类型。接下来,我们需要在DLL项目中定义一个函数,这个函数将被VB程序调用。例如,我们可以创建一个名为`AddNumbers`的函数,接收两个整数参数并返回它们的和: ```...

    CRT-310(004)动态库调用例子_创自crt310_

    【CRT-310(004)动态库调用例子】是针对Crt310开发的一个示例,主要用于电动读卡器的程序开发。这个资料集包含了多个编程环境下的示例代码,如Visual C++ 6.0、Delphi 7、C# 2010和Visual Basic 6,帮助开发者理解和...

    用VB来调用VC编写的COM组件(dll)

    在本主题中,我们关注的是如何利用Visual Basic(VB)调用由Visual C++(VC)编译生成的COM组件,具体是一个名为“jabbercom.dll”的例子。 首先,COM组件通常是以动态链接库(DLL)的形式存在,它们可以被注册到...

    prodave的使用的问题及VB、VC例子

    2. **导入库和API**:在VB或VC项目中,引入`prodave` 的库文件,注册相关动态链接库(DLL),并声明API函数。 3. **连接PLC**:使用`prodave` 提供的函数建立与PLC的连接,通常包括初始化、打开和关闭连接。 4. **...

    vc,delphi,bcb,asp,asp.net,c#调用vc写的com的例子

    COM组件通常是一个动态链接库(DLL)或一个可执行文件,它们包含一组接口,供其他程序通过COM调用。在VC中,你可以使用 ATL(Active Template Library)来简化COM组件的创建过程。 Delphi是另一种流行的面向对象的...

    大漠调用的例子

    这是一个动态链接库文件,包含了多种功能模块,如图像识别、鼠标键盘模拟、窗口操作等。开发者可以通过调用其API函数,实现对操作系统和应用程序的底层控制。在自动化测试场景下,它可以帮助我们自动执行一系列操作...

    VC/VB联合编程

    本文将详细介绍如何利用VC++生成DLL(动态链接库)并在VB程序中进行调用,以实现简单的运算功能。 DLL是一种可执行文件,它可以被多个应用程序同时调用,共享代码和资源,从而节省内存并提高程序效率。在本案例中,...

    Vc 调用matlab以dll形式调用m文件

    给定的压缩包中可能包含了一个可运行的例子,这通常是一个简单的C++程序,展示了如何加载MATLAB编译的DLL并调用其中的M文件功能。这样的例子对初学者来说是非常有帮助的,因为它提供了实际操作的模板。 7. **注意...

    MATLAB2014aC++代码生成,并用VC2010生成dll供VBA或VB调用使用说明.pdf

    - 首先,通过Visual Studio 2010创建一个新的Win32项目,选择DLL作为应用程序类型,并创建一个空项目。 - 在项目中添加头文件(.h)和源文件(.cpp),定义导出函数。例如,这里创建了一个名为`fmax`的函数,用于...

    VB调用ZIP压缩和解压DLL-静态编译稳定不会提示找不到DLL

    标题中的“VB调用ZIP压缩和解压DLL-静态编译稳定不会提示找不到DLL”意味着这个DLL文件在编译时已经将所有必要的依赖项整合到了自身,因此在不同计算机上运行时,不再需要额外安装或查找其他系统DLL,避免了“缺少...

    一个简单的VC写的生成N位随机数的DLL

    标题 "一个简单的VC写的生成N位随机数的DLL" 涉及到的是在Microsoft Visual C++(简称VC)环境中开发的一个动态链接库(DLL),它的主要功能是生成指定长度的随机数。DLL是一种可执行代码库,可以被多个应用程序共享...

    DLL输出对话框类的例子

    "vbnetCallDll.rar"可能是一个额外的示例,演示了如何使用VB.NET来调用同一个DLL,这表明该DLL不仅限于MFC环境,也能跨语言使用。 创建DLL的过程大致包括以下步骤: 1. 创建DLL项目:在Visual Studio中选择“新建...

    多媒体函数库bass.dll相关例子SDK和说明VC++,C#.net,VB6

    综上所述,Bass.dll多媒体函数库是一个全面的音频处理工具,无论你是C++、C#还是VB6的开发者,都可以利用它轻松实现音频功能的开发。通过提供的SDK和示例代码,学习和应用Bass.dll将变得非常直观和高效。

    VC6下的GDI+双缓冲 解决闪烁问题

    在VC6下实现GDI+双缓冲,首先需要创建一个内存设备上下文,并且创建一个与窗口大小相同的位图,然后将内存设备上下文与这个位图关联。接着,开发者可以在内存设备上下文中使用GDI+的各种绘图函数进行图形绘制,如...

Global site tag (gtag.js) - Google Analytics