PB 调用C++函数

PB 调用C++函数,第1张

PB 调用别的语言函数,只能生命全局或者局部dll,然后调用函数,你应该编译为dll后让pb调用

至于你说枝老的定义类型问题,pb对底层支持的不是很好,但是基本按键响应有专门的窗体事件可以调用,pb没有字符变量,能够直接定义字符串或者数组

比如你的消息代码是'岩册0xabc',在pb里面简单定义一个 string a就行了

直接赋值a = '0xabc'比C语言简单多了

还有,pb没有指针、堆栈之类的概念,你就用word的概念处理,一段话或者几个字,直接处理,不需要那些复杂的循环、链表之类的

需要替换、粗搭宏查找、分割、都有对应的函数,和用word很像

&是传递时按照地址传递,对应pb中的ref(即reference),pb默认是按照值传递的,所以传递地址,需在参数前加ref

函数int _stdcall getinfo如果有返回值,比如int

function int int _stdcall getinfo(long dev, ref basic_info info,ref ulong serialno) library '动态库名称.dll'

无返回值的情况

subroutine int _stdcall getinfo(long dev, ref basic_info info,ref ulong serialno) library '动态库名称.dll'

注:动态库需要放置程序运行根目唤顷录或者system32目录下,否则可脊哗能需要输入完整路径,详细使用和野陆方法可查看pb自带帮助或者参考手册

1. 用VC创建DLL

在VC 6.0中可以用“MFC AppWizard”自动生成“Win32 DLL”和“MFC AppWizard DLL”。启动VC之后,从“File/New”菜单项,选择“New”对话框中的“Projects”标签,选择新项目为“MFC AppWizard(DLL)”,可输入工程名为testdll,然后点击“OK”按钮,d出选择DLL类型对话框后,再选择DLL类型为:贺雀Regular DLL With MFC Statically Linked,最后点击“Finish”按钮。这样,AppWizard将自动创建一个包含基本要素的DLL框架,接着手工添加相关的代码。

2. 打开testdll.cpp文件,添加如下语句

int giTrcFlag=0/* 日志标志 */

extern "C" __declspec(dllexport) int PASCAL SetTrace(void)

{

::MessageBox(NULL, "跟踪信息:", "开启日志禅肆早标志", MB_OK)

giTrcFlag = 1

return 0

}

extern "C" __declspec(dllexport) int PASCAL ClearTrace(void)

{

::MessageBox(NULL, "跟踪信息:", "关闭日志标志", MB_OK)

giTrcFlag = 0

return 0

}

接着打开testdll.def文雹逗件,在EXPORTS下输入函数说明,文件内容如下:

LIBRARY “pbdll”

DESCRIPTION ‘pbdll Windows Dynamic Link Library’

EXPORTS

Explicit exports can Go here

SetTrace @1

ClearTrace @ 2

最后编译生成动态链接库testdll.dll。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12218191.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存