你先尝试一下将一个string类型直接作为参数:Dim x as string*256
dim i as longi = 256
mciSendString "...",x,i,...其中...是另外的参数。 应该是可以的。如果不可以。试一下将参数lpstrReturnString 定义为Long类型的:
Public Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As Long, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
这样返回的是指向字符串的指针。另外参数uReturnLength 应该是返回的返回字符串的长度,你可以利用API函数Copymemory将lpstrReturnString 指向的uReturnLength 长度的字符串拷贝到程序的字符串中。注意Copymemory的定义,源应该定义为Byval ...Long类型的,目标定义为Byval...String类型的。

解决方案 »

  1.   

    Why,直接把一个 String 变量放进去就可以了。Dim tmpBuffer As StringtmpBuffer = String(256, vbNullChar)mciSendString "...", tmpBuffer, 256, 0&
      

  2.   

    TechnoFantasy(www.applevb.com) 
    这个问题我下午就解决拉
    其实应该按你所说
    只要用 dim xx as string*128就行啦128和你设定的文本缓冲大小有关
    光用string是没法获取的
    但我还是搞不懂string*128shi是什么意思?
      

  3.   

    dim xx as string*128
    就是定义一个长度为128字节的字符串,如果不定义*128的话,系统不会为字符串分配存储空间。