2 loco 001 loco_001 于 2015.05.26 23:08 提问

【江湖救急】定义外部函数名被关键字占用如何处理?

在下用PB调用一个动态库,里面有一个方法名叫execute(),
但是定义时跟PB的execute关键字冲突,无法定义和使用,
跪求各位大神该如何处理?

多个函数,其中open、close虽PB内部也有,但是可以定义成功并使用,
FUNCTION integer open(string devtype,string serialport,int baudrate,ref string pszRcCode) LIBRARY "Driver.dll"

FUNCTION integer close(string devtype,string serialport,int baudrate,ref string pszRcCode) LIBRARY "Driver.dll"

但是这个execute就不行了,
FUNCTION integer execute(string devtype,string serialport,int baudrate,ref string pszRcCode) LIBRARY "Driver.dll"

该如何解决?其他途径绕过亦可。

3个回答

gamefinity
gamefinity   Rxr 2015.05.27 05:46
已采纳

使用别名

 FUNCTION integer executeABC(string devtype,string serialport,int baudrate,ref string pszRcCode) LIBRARY "Driver.dll" Alias for "execute"
gamefinity
gamefinity   Rxr 2015.05.27 05:46

使用别名

 FUNCTION integer executeABC(string devtype,string serialport,int baudrate,ref string pszRcCode) LIBRARY "Driver.dll" Alias for "execute"
91program
91program   Ds   Rxr 2015.05.27 07:25

你使用的动态库是在 PB 下编译、并生成的吗?
如果是,为什么这个动态库编译还能通过?因为动态库中使用了 execute 与系统的函数重名了。
如果不是,能在 PB 下安全使用嘛。

Csdn user default icon
上传中...
上传图片
插入图片