易截截图软件、单文件、免安装、纯绿色、仅160KB

使用VC编写VB使用DLL

使用VC编写VB使用DLL
一、在函数定义前必须加上extern "c",_stdcall关键字。
 extern "C" int _stdcall Sum(int x,int y)
 {
  return x+y;
 }
 
二、DLL的.def文件中必须加上入口函数
    EXPORTS
     sample @1
    
 sample是你要在VB中调用的函数名,@1表示该函数在DLL中的编号
 
三、要注意DLL中的函数和VB中的函数声明在名称、返回类型、参数类型、参数个数等方面必须完全相同,尤其要注意大小写的问题。
注意事项:
 1、必须保证VB和VC的参数个数相同,参数所占字节数也一致
3.数组参数在DLL中的传递
  由于DLL经常用来进行一些底层的运算操作,因此应用程序常需要传递大量的数据给DLL。在C++中,指针是进行数组操作的最佳选择,但VB中没有指针的概念。这通常可用两种方法来解决。
  其一,在VB中声明DLL时,用byref来代替byval,即可将数组指针传递给DLL。
  另外,将数组声明为变体型(variant),即可直接将数组传递给DLL。
四、在vb中声明("dllTest.dll" 使用的是相对路径,你可以将dll.dll放到.exe所在的目录或系统目录),函数名大小敏感
Private Declare Function Sum Lib "dllTest.dll" (ByVal x As Long, ByVal y As Long) As Long
五、例子
 1、新建一个win32 dynamic library,空的工程
 2、新建一个dllTest.cpp 文件,并添加到工程。内容如下
// dll4.cpp : Defines the entry point for the DLL application.
//
#include "stdafx.h"
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
extern "C" int _stdcall Sum(int x,int y)
{
return x+y;
}
extern "C" int _stdcall GetNum(int Num) /*具体实现*/
{
return Num;
}

 // dll4.cpp : Defines the entry point for the DLL application.
//
#include "stdafx.h"
BOOL APIENTRY DllMain( HANDLE hModule,
                       DWORD  ul_reason_for_call,
          


相关文档:

[VB]GDI+ IStream、StdPicture、Byte() 互转

很多年前就想做一个远程控制的软件,只是一直以来图片的压缩速度总是提升不上去,而我也参考过很多网上的关于图片压缩的例子,比如zyl910的GIF_LZW压缩方法,Huffman压缩方法,以至到GDI+的直接生成JPG、PNG的方法(这种方法无论从压缩率和速度上都是最佳的,可惜这种方法网上一直没找到直接保存为Byte()的例子,见得最多的 ......

Developer Support Languages VC++, C# and VB.NET


Welcome to Microsoft Developer Support, Languages team blog! You will find a lot of language related troubleshooting resources here.
Troubleshooting PInvoke Related Issues 
I am back with some more PInvoke Stuff.  Recently I was working on a PInvoke issue which I found interesting ......

VB 操作Excel,附软件图

一、 VB读写EXCEL表:
  VB本身提自动化功能可以读写EXCEL表,其方法如下:
  1、在工程中引用Microsoft Excel类型库:
  从"工程"菜单中选择"引用"栏;选择Microsoft Excel 9.0 Object Library(EXCEL2000),然后选择"确定"。表示在工程中要引用EXCEL类型库。
  2、在通用对象 ......

vb在数据库中储存图片并显示出来

 '**************************读图片文件**************************************  
  Sub   GetPicfromDB(cn   As   ADODB.Connection)  
          On   Error   Resume   Next  
          Dim   ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号