精华内容
下载资源
问答
  • VB6调用VC6下编译的DLL中的导出函数,调试运行时会报告“Bad DLL call convention”,而编译成EXE以后直接运行则没有问题。...解决方法,打开DLL文件源代码,在导出函数的声明和实现前面都加上关
    用VB6调用VC6下编译的DLL中的导出函数,调试运行时会报告“Bad DLL call convention”,而编译成EXE以后直接运行则没有问题。
    上网查阅文章后发现,解释方式下的VB调用C语言写的函数,仅限于PASCAL调用约定的函数,也就是stdcall方式,而C方式的函数(cdecl)是不行的,编译运行时无此限制。
    解决方法,打开DLL文件源代码,在导出函数的声明和实现前面都加上关键字__stdcall,例如:
    // in head file:
    int __stdcall myFunction();
     
    // in cpp file:
    int __stdcall myFunction () { ... }
    重新编译DLL并再次运行VB程序,问题解决。

    由此不难理解为什么Windows API函数的声明中为什么都有一个“WINAPI”,例如

    int
    WINAPI
    MessageBoxA(
        HWND hWnd ,
        LPCSTR lpText,
        LPCSTR lpCaption,
        UINT uType);

     

    因为在windef.h中有以下定义:

    #define CALLBACK    __stdcall
    #define WINAPI      __stdcall
    #define WINAPIV     __cdecl
    #define APIENTRY    WINAPI
    #define APIPRIVATE  __stdcall
    #define PASCAL      __stdcall

     


     

    参考网址:http://support.microsoft.com/kb/158905/EN-US/

    展开全文
  • VB6调用VC6下编译的DLL中的导出函数,调试运行时会报告“Bad DLL call convention”,而编译成EXE以后直接运行则没有问题。 上网查阅文章后发现,解释方式下的VB调用C语言写... 解决方法,打开DLL文件源代码,在导

     

        VB6调用VC6下编译的DLL中的导出函数,调试运行时会报告“Bad DLL call convention”,而编译成EXE以后直接运行则没有问题。

        上网查阅文章后发现,解释方式下的VB调用C语言写的函数,仅限于PASCAL调用约定的函数,也就是stdcall方式,而C方式的函数(cdecl)是不行的,编译运行时无此限制。

        解决方法,打开DLL文件源代码,在导出函数的声明和实现前面都加上关键字__stdcall,例如:

    // in head file:

    int __stdcall myFunction();

     

    // in cpp file:

    int __stdcall myFunction () { ... }

    重新编译DLL并再次运行VB程序,问题解决。

     

    --------------------------------------------------------------------------------

     

    由此不难理解为什么Windows API函数的声明中为什么都有一个“WINAPI”,例如

     

    int

    WINAPI

    MessageBoxA(

        HWND hWnd ,

        LPCSTR lpText,

        LPCSTR lpCaption,

        UINT uType);

     

     

    因为在windef.h中有以下定义:

     

    #define CALLBACK    __stdcall

    #define WINAPI      __stdcall

    #define WINAPIV     __cdecl

    #define APIENTRY    WINAPI

    #define APIPRIVATE  __stdcall

    #define PASCAL      __stdcall

     

     

    展开全文
  • VB写标准DLL

    2019-02-21 22:23:44
    5.把 模板 目录中的文件复制到“VB98的目录\Template\Projects\”~ 好了 自己试试吧~ 卸载方法 删掉VB98目录中的 makedll.exe 和 MakeDLL.dll 如果你要写DLL 得加一个函数DLLMain() 否则是写不成的 可以不输出,...
  • VB封装API的DLL

    2008-02-21 15:44:23
    -------获取系统所在目录 17、GetWinDir--------获取Windows所在目录 18、PlayWavSound-----播放wav格式的音频文件 19、SetDesktopStatus-显示或者隐藏桌面 20、ShowControlPanel-显示控制面板中的部分...
  • DLL函数查看器V3.5

    热门讨论 2013-07-24 10:10:37
    * 新增对函数的易语言和VB的函数及结构声明 * 新增查壳功能 * 新增查看PE文件头信息 * 美化窗口界面等 感谢使用山寨版DLL函数查看器,遇到问题请发送邮件 infopet@qq.com 因为以前使用 DLL函数查看器2.0 遇到很多...
  • 可用来在VB,VC驱动摄像头,进行静帧捕捉的DLL动态链接库(必须要有摄像头生成StillCap0000.bmp):将MyDll文件解压后把MyDll.dll与MyDll.lib一起拷入工程DEBUG目录(为保险起见DEBUG外层目录也拷贝一份吧),...
  • 对于动态的Excel文件可以通过VBA代码不可见且不可修改(在互相传递的过程中)以及降低代码的可读性来保护Excel文件中的VBA代码 5、首次实现代码归纳与重写技术,对VBA/VB代码中所有名称,包括:变量名、自定义过程和...
  • VB6.0的开发环境中,添加一个按钮,编写如下代码: Option Explicit说明:CDdoor函数是安装WINDOWS时所自带的winmm.dll文件中包含的函数Private Declare Function CDdoor Lib "winmm.dll" Alias "mciSendStringA" ...
    在VB6.0的开发环境中,添加一个按钮,编写如下代码: 
    

    Option Explicit
    '说明:CDdoor函数是安装WINDOWS时所自带的winmm.dll文件中包含的函数
    Private Declare Function CDdoor Lib "winmm.dll" Alias "mciSendStringA" _
    ( ByVal lpstrCommand As String,ByVal lpstrReturnString As String, _
    ByVal uReturnLength As Long, ByVal hwndCallback As Long ) As Long

    Dim CDOpen As Boolean

    Private Sub cmdControl_Click()
    On Error Resume Next

    '如果关闭则打开,并且按钮做相应变化 
    If CDOpen = False Then
    Call CDdoor("打开", 0, 0, 0)
    CDOpen = True
    cmdControl.Caption = "点击关闭光驱"
    Else
    '否则关闭
    Call CDdoor("关闭", 0, 0, 0)
    CDOpen = False
    cmdControl.Caption = "点击打开光驱"
    End If
    End Sub


    Private Sub Form_Load()
    CDOpen = False
    Call CDdoor("关闭光驱", 0, 0, 0)
    End Sub

     

    //注:F5运行,就可以控制光驱了。本示例在Win2003,VB6.0环境下运行提通过。 

    展开全文
  • (2KB) 64,chunks.ZIP 这段代码演示将文件内容读入chunks(20k), 比较简单的方法是一个一个字符读取, 但速度很慢, 这个例子提供的方法能快速处理文件中的数据 (6KB) 65,fileprops.ZIP 实现文件属性...
  • 安装完毕后打开vb在目录Project/References中选中mmatrix就可以在vb的工程中使用matrixvb中的函数了。文件发布必须包含以下dll文件:v4510v.dll、c4510v.dll、ago4510.dll、msvcrt.dll、 msvcirt.dll、MMatrix.dll,...
  • GetProcAddress(GetModuleHandle("Kernel32"), "LoadLibraryA") ‘获取loadlibrary函数的地址,这个函数可以载入指定的dll文件,那他参数呢?就是我们刚才在notepad.exe进程里写入“c: est.dll“ ‘不过还得让...
  • 利用输入法注入DLL

    2013-05-19 22:45:22
    法其实就是注入到应用程序中的一个DLL文件,并且,这种“注入”是不会被杀软和游戏NP 拦截的(至少目前是)。现在,我们已经有了一个注入DLL的另类方法,那就是利用输入法 。具体流程是这样,首先制作一个标准...
  • vb编程常用命令集锦

    2011-03-17 13:12:09
    API说来说去,就是一种函数,他们包含在一个附加名为DLL的动态连接库文件中。用标准的定义来讲,API就是Windows的32位应用程序编程接口,是一系列很复杂的函数,消息和结构,它使编程人员可以用不同类型的编程语言...
  • VB网络编程实例

    千次下载 热门讨论 2007-05-29 15:46:04
    ◆ 171.htm 开发网络应用的5个技巧 ◆ 172.htm 利用RAS调用在VB6.0中实现拨号上网 ◆ 173.htm 利用VB提取HTML文件中的EMAIL地址 ◆ 174.htm 枚举出局域网上所有网络资源 ◆ 175.htm 面向...
  • lread 将文件中的数据读入内存缓冲区 lwrite 将数据从内存缓冲区写入一个文件 LZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件 LZCopy 复制一个文件 LZInit 这个函数用于初始化内部缓冲区 LZOpenFile 该...
  • 专业版更提供了特殊的方案,脚本可以回调程序员自己的函数,因此,Visual Graph不支持的技术,程序员可以自行实现。 完备性: Visual Graph充分考虑了用户方方面面的需求,把许多技术做到了极致,超前设计了许多...
  • 专业版更提供了特殊的方案,脚本可以回调程序员自己的函数,因此,Visual Graph不支持的技术,程序员可以自行实现。 完备性: Visual Graph充分考虑了用户方方面面的需求,把许多技术做到了极致,超前设计了许多...
  • 适合patch尚未运行加壳不加壳可执行文件,需要补丁数据较多时建议使用这个,在子程序打补丁 .参数 文件名, 文本型, , 文件全路径 .参数 模块名, 文本型, , 如"user32.dll" .参数 API, 文本型, , 如...
  • 8. 生成dll文件后,我们开始调试和使用.在系统运行栏输入cmd,进入dos 命令行状态,我们要注册刚才生成dll组件,注册方法是可以直接输入 regsvr32 e:\vbdll\aspdll.dll ,为了安装方便,你同时可以写个批处理 文件,这里...
  • Excel插件--OBS.DLL

    2008-11-27 17:05:52
    17、Excel对象管理器,可以批量转换Excel中的对象(图片、Shape、图表等)到图片文件; 18、在Excel中播放背景音乐、定时执行特定的程序、整点报时,一定很惬意... 19、屏幕录像及捕捉。哦,这个功能很强大啊。...
  • 1.VB.NET 2008开发环境工程文件,纯API方法获取硬盘物理序列号,也就是所谓全球唯一标识号,通常用这个号作为软件注册唯一标识;写到一个函数中,非常方便移植代码! 2.使用说明:打开程序后,点按钮后,三个...
  • VB编程资源大全(源码 网络)

    热门讨论 2007-10-17 22:54:27
    vb5mail.ZIP 演示接收和发送邮件, 需要mapi controls, grid controls (15KB) 58,starturl.ZIP 实现web页面中链接的点击效果 (8KB) 59,downloadweb.ZIP 下载web页面并显示文件中的内容 (7KB) 60...
  • prnprv3.zip 在vb5/6中增加打印预览功能(78KB) 662,vbprint.zip vb中使用打印功能add-in(764KB) 663,spool.zip 打印文件例子(5KB) 664,versioninfo.zip 从dll或exe文件中获得版本信息(3KB)...
  • prnprv3.zip 在vb5/6中增加打印预览功能(78KB) 662,vbprint.zip vb中使用打印功能add-in(764KB) 663,spool.zip 打印文件例子(5KB) 664,versioninfo.zip 从dll或exe文件中获得版本信息(3KB)...
  • prnprv3.zip 在vb5/6中增加打印预览功能(78KB) 662,vbprint.zip vb中使用打印功能add-in(764KB) 663,spool.zip 打印文件例子(5KB) 664,versioninfo.zip 从dll或exe文件中获得版本信息(3KB)...
  • prnprv3.zip 在vb5/6中增加打印预览功能(78KB) 662,vbprint.zip vb中使用打印功能add-in(764KB) 663,spool.zip 打印文件例子(5KB) 664,versioninfo.zip 从dll或exe文件中获得版本信息(3KB)...
  • 自定义取得子窗口类名的函数,写在 Module1.bas 文件中 我们知道 OICQ 主窗口的用户名的类名是 ComboBox,密码框的类名是 Edit,这里可以通过取得类名的办法,取得它们的句柄,从而取得它们的值。 Public Function...
  • 1.Prodave 是用于pc 与s7 系列plc 之间的数据链接通信的工具箱。其实质就是用户通过调用“w95_s7.dll”等库函数来解决 PLC 与PC之间的...通过以上程序可以正确读出PLC中的数据。之后可以扩展内容,编写一个监控软件。
  • oglocx.ZIP 一个尺寸很小的支持OpenGL的控件,对于OpenGL中的每一个函数,这个控件都提供了相应的方法。这是一个共享控件,如果要获得它的单用户协议的版本就要$199(51KB) 47,actskin.ZIP 利用这个控件...
  • oglocx.ZIP 一个尺寸很小的支持OpenGL的控件,对于OpenGL中的每一个函数,这个控件都提供了相应的方法。这是一个共享控件,如果要获得它的单用户协议的版本就要$199(51KB) 47,actskin.ZIP 利用这个控件...

空空如也

空空如也

1 2 3 4 5 6
收藏数 103
精华内容 41
关键字:

vb打开dll文件中的函数