PB调用VC编写的动态链接库

原创 2006年06月01日 18:05:00

问题:在pb调用vc编写的动态链接库的时候,报"specified argument type differs from required argument type at runtime in DLL function myFunctionVC4(invalid stack pointer on return from function call) at line 3 in clicked event of object cb_1 of w_main"

(1) DLL中myFunctionVC4函数声明如下:
extern "C" __declspec(dllexport)  long  MyFunctionVC4(long xx){
 //AFX_MANAGE_STATE(AfxGetStaticModuleState());
 return xx;
}

(2)调用过程 long ll = MyFunction(10);

为什么我调用的时候,说提示无法访问被呼叫函数的堆栈哪?经过查阅资料,发现问题解答如下:

(1)VC中函数需要前加 __stdcall 参数声明
(2)要在.def文件中定义函数的导出顺序
     ; MyVCDLL.def : Declares the module parameters for the DLL.

     LIBRARY      "MyVCDLL"
     DESCRIPTION  'MyVCDLL Windows Dynamic Link Library'

     EXPORTS
          ; Explicit exports can go here
          ;MyVC3 = _MyVC3@4  

          ;这里的@4是指的MyVC3参数的总Byte数,注意你可以改名,例如MyVC4 = _MyVC3@4真正在外部调用时为MyVC4(int)名
          MyFunctionVC4 @1  ;这里的@1表示,这个函数被导出的顺序

你可以用以上两种方式的任意一种导出函数

PB调用C++编写的读写dbf文件头的DLL

编译工具:VC++6.0 rwdbffilehead.cpp // rwdbffilehead.cpp : Defines the entry point for the DLL applicat...

PB8调用使用C++与C#分别编写生成解压缩带有密码的zip压缩文件的动态链接库dll(部分内容转自互联网)

本文章编写的原因,是由于zlib无法解压缩由ICSharpCode.SharpZipLib.dll压缩的文件对作者的项目造成了困难,于是结合网上关于这方面的资料整理了这篇文章,希望对大家有所帮助,减少...

VB调用VC生成的动态链接库

  • 2012年04月27日 09:03
  • 837KB
  • 下载

VC++ MFC DLL动态链接库编写详解

虽然能用DLL实现的功能都可以用COM来替代,但DLL的优点确实不少,它更容易创建。本文将讨论如何利用VC MFC来创建不同类型的DLL,以及如何使用他们。 一、DLL的不同类型     使用...

VC++ MFC DLL动态链接库编写详解

 VC++ MFC DLL动态链接库编写详解    虽然能用DLL实现的功能都可以用COM来替代,但DLL的优点确实不少,它更容易创建。本文将讨论如何利用VC MFC来创建不同类型的DLL,以及如何...
  • Augusdi
  • Augusdi
  • 2011年06月30日 14:53
  • 1017

动态链接库编写与调用

  • 2011年04月05日 09:12
  • 969KB
  • 下载

VC++:创建,调用MFC动态链接库(扩展DLL)

概述 DLL(Dynamic Linkable Library)动态链接库,Dll可以看作一种仓库,仓库中包含了可以直接使用的变量,函数或类。 仓库的发展史经历了"无库" ---> "静态链接库"  ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PB调用VC编写的动态链接库
举报原因:
原因补充:

(最多只允许输入30个字)