VB调用BCB的DLL有关问题

VB调用BCB的DLL问题.BCB的DLL函数参数是一结构体, struct CDRoom{PCHAR dnameunsigned char Gainunsigne

VB调用BCB的DLL问题.
BCB的DLL函数参数是一结构体, struct CDRoom{PCHAR dname;
  unsigned char Gain;
  unsigned char Offset;
  unsigned long Exptime;
  unsigned char HBIN;
  unsigned char VBIN;}
在VB里如何定义? 


我在VB里的定义是
  Type CDRoom
    Dname As String 
    Gain As Byte
    offset As Byte
    Exptime As Long
    HBIN As Byte
    VBIN As Byte
 end type

但是调用时,提示内存只读错误. 将 Dname改为变体时,提示除数为0的错误. 
请高手指点.

Pchar在VB里定义为何类型比较适合.
[最优解释]
delphi编写的DLL吧,pchar类型在bcb中是char*,即字符型指针。
[其他解释]
指针 一般都用long就没问题
[其他解释]
看看这本书,也许对你有用:
http://download.csdn.net/source/3050780
[其他解释]
pchar 是指针类型,在VB里可以用long
[其他解释]
Type CDRoom
  Dname() As Byte  
  Gain As Byte
  offset As Byte
  Exptime As Long
  HBIN As Byte
  VBIN As Byte
End Type


[其他解释]
是BCB编写的,不是Delphi写的。 
[其他解释]
多谢楼上的.我先下书看看.
[其他解释]
楼下的兄弟,再请教一下, 那如何赋值呢?
[其他解释]
Dim BB(7) As Byte
Dim STr As String
STr = "AAAAAA" & Chr(0)
Dim i As Long
For i = 0 To 6
    BB(i) = Asc(Mid(STr, i + 1, 1))
Next i
   BB(7) = 0
With Reg
    '.Devname = StrPtr(STr)
    .Devname = VarPtr(BB(0))


定义成Long,还是不行,两了数组,和字符串赋值都不行.一样报错.