首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > PB >

API中的结构怎样申明?该怎样声明定义?解决思路

2012-03-18 
API中的结构怎样申明?该怎样声明定义?门锁函数给出的结构定义: VC的typedef stryct_Cardinfo{unsigned int

API中的结构怎样申明?该怎样声明定义?
门锁函数给出的结构定义: VC的

typedef stryct_Cardinfo
{
  unsigned int Roomaddr;
  unsigned short isEmpty;
  unsigned short Year;
  unsigned short Mon;
  unsigned short Day;
  unsigned short Hour;
  unsigned short Num;
  unsigned short ExpireMode;
  unsigned short ExpireValue;
  unsigned short isDisable;
  unsigned short Reserved1;
  unsigned short Reserved2;
  unsigned short Reserved3;
}Cardinfo, *LPCardinfo

函数为:
int ReadGuestCardInfo(const char * PortName,CardInfo * Plnfo);


这种结构在PB中该怎么声明阿? 实在不会,希望各位能帮助.

[解决办法]
function Ulong ReadGuestCardInfo(ref string PortName,ref structure Plnfo) library "xxxx.dll"

[解决办法]
结构用Pb中的结构对象定义即可
$PBExportHeader$us_cardinfo.srs
global type us_cardinfo from structure
ulong Roomaddruint
uint isEmpty
uint Year
uint Mon
uint Day
uint Hour
uint Num
uint ExpireMode
uint ExpireValue
uint isDisable
uint Reserved1
uint Reserved2
uint Reserved3
end type
然后定义外部函数
function long ReadGuestCardInfo(ref string PortName,ref us_cardinfo Plnfo) library "xxxx.dll"

[解决办法]
PB不支持指针。
把结构转成字符串,然后在PB中转成你需要的格式吧。
[解决办法]

探讨
引用:
c/c++的 unsigned int 对应PB的UnsignedInt


睁眼乱说!
你sizeof(int)看看!

注意:
VC PB
int long
unsigned int ulong

反正是等宽就行了。

当然,对说原子类型,小一点也没有关系。如:

LONG WINAPI f(LONG L)

如果用的数……

[解决办法]
但是由于不同平台上的的兼容性问题,因为各个平台提供的基本数据类型的长度是有可能不同的,如int型,有些平台是16位,有些平台是32位。

上面那位仁兄,这句话没有说错。

我可以肯定的告诉大家,VC2005,VC2008,还有WINDONS自带的API,的int 是32位四字节

热点排行