Visual Studio 2019 C++ 编写 PowerBuilder 可调用的DLL

第一步:创建新项目

选择“具有导出项的(DLL)动态链接库”,名称为c2pbdll

Visual Studio 2019 C++ 编写 PowerBuilder 可调用的DLL_第1张图片

Visual Studio 2019 C++ 编写 PowerBuilder 可调用的DLL_第2张图片

第二步:编写源文件c2pbdll.cpp,定义函数

// c2pbdll.cpp : 定义 DLL 的导出函数。
//

#include "pch.h"
#include "framework.h"
#include "c2pbdll.h"


extern "C"
{
	_declspec(dllexport) int add(int a, int b)
	{
		return a + b;
	}
	_declspec(dllexport) int sub(int a, int b)
	{
		return a - b;
	}
}

Visual Studio 2019 C++ 编写 PowerBuilder 可调用的DLL_第3张图片

第三步:因为要给pb使用

1、首先进行模块定义

Visual Studio 2019 C++ 编写 PowerBuilder 可调用的DLL_第4张图片

Visual Studio 2019 C++ 编写 PowerBuilder 可调用的DLL_第5张图片

LIBRARY "c2pbdll"  
    EXPORTS  
    add
    sub

Visual Studio 2019 C++ 编写 PowerBuilder 可调用的DLL_第6张图片

2、右键项目名-属性,找到 链接器-输入,在模块定义文件选择模块文件

Visual Studio 2019 C++ 编写 PowerBuilder 可调用的DLL_第7张图片

3、在c/c++ - 高级设置“调用约定”为"_stdcall(/Gz)"

Visual Studio 2019 C++ 编写 PowerBuilder 可调用的DLL_第8张图片

第四步:生成

Visual Studio 2019 C++ 编写 PowerBuilder 可调用的DLL_第9张图片

第五步:在PB中调用

1、将生成的c2pbdll.dll复制到PB项目下

Visual Studio 2019 C++ 编写 PowerBuilder 可调用的DLL_第10张图片

2、在 Global External Functions 中引入

Function int add(int a,int b) LIBRARY "c2pbdll.dll" alias for "add;Ansi"
Function int sub(int a,int b) LIBRARY "c2pbdll.dll" alias for "sub;Ansi"

Visual Studio 2019 C++ 编写 PowerBuilder 可调用的DLL_第11张图片

3、在PB项目中调用

integer li_a,li_b,Result

li_a = integer(sle_1.text)
li_b = integer(sle_2.text)

Result = add(li_a,li_b)

messagebox("add",string(Result))

Visual Studio 2019 C++ 编写 PowerBuilder 可调用的DLL_第12张图片

Visual Studio 2019 C++ 编写 PowerBuilder 可调用的DLL_第13张图片

本文参考了 果号 文章,在此表示感谢。

https://blog.csdn.net/heker521/article/details/102552467

你可能感兴趣的:(Visual Studio 2019 C++ 编写 PowerBuilder 可调用的DLL)