VB与VC中API中字符串类型的转换有关问题

VB与VC中API中字符串类型的转换问题
VC   中,关于字符串,我看是这样的表示方法

char   *sDVRFileName   和   BYTE   sSerialNumber[SERIALNO_LEN]

这个我搞不太清,理论上面一个是字符串,一个是数组,可是vc好象是直接传递的vb就不行了呀

举个例子
VC是这样的

NET_DVR_API   BOOL   __stdcall   NET_DVR_GetPicture(LONG   lUserID,char   *sDVRFileName,char   *sSavedFileName);

BYTE   sSerialNumber[SERIALNO_LEN];     //序列号

char   filenamedownload[256];
char   nFileName[256];
NET_DVR_GetPicture(GetPic-> m_lServerID,   GetPic-> filenamedownload,   nFileName)     //调用


vb中   nFileName是一个字符串,怎样调用   NET_DVR_GetPicture呢



------解决方案--------------------
VB 是完全 COM 兼容的,所以它的 String 就是 BStr,具体可以看看 MSDN。
c 中的 char* 是一个指针,而且字符串值 ANSI 格式。

首先,在 VB 中将参数声明未指针值(Long)
declare ... NET_DVR_GetPicture(byval lUserID as long,byval sDVRFileName as long, byval sSavedFileName as long)

其次,将VB字符串转换为 ANSI 格式并传递指针
sFileName = strconv(sFileName, vbFromUnicode)
NET_DVR_GetPicture lUserID, strptr(sFileName), strptr(sSaveFileName)

------解决方案--------------------
sFileName = StrConv(strFileInfo.sFileName, vbUnicode)
------解决方案--------------------
sFileName(0 To 100) As Byte '//图片名

sFileName As String*101

------解决方案--------------------
调用的时候要先初始化这个String
***.sFileName =space(101)