VB6.FixedLengthString(100)是啥玩艺儿?

cnming 2004-11-17 10:28:39
从这个网页中http://network.programming-in.net/articles/art7-3.asp

可以找到Dim lpszName As New VB6.FixedLengthString(100) ,这个语句有问题,我不懂得如何改,请帮忙

Sub MapWebcamToWindow(ByRef lWidth As Integer, ByRef lHeight As Integer, ByRef hWnd As Integer)
Dim lpszName As New VB6.FixedLengthString(100)

Dim bmp As BITMAPINFO
With bmp.bmiHeader
.biSize = Len(bmp.bmiHeader)
.biWidth = 320
.biHeight = 240
.biPlanes = 1
.biBitCount = 24
End With
capGetDriverDescriptionA(0, lpszName.Value, 100, Nothing, 100)
lwndC = capCreateCaptureWindowA(lpszName.Value, WS_VISIBLE Or WS_CHILD, 0, 0, lWidth, lHeight, hWnd, 0)

If capDriverConnect(lwndC, 0) Then
capPreviewRate(lwndC, 66)
capPreview(lwndC, True)
capSetVideoFormat(lwndC, bmp, Len(bmp))
SetWindowPos(lwndC, 0, 0, 0, bmp.bmiHeader.biWidth, bmp.bmiHeader.biHeight, SWP_NOMOVE Or SWP_NOZORDER)
End If

End Sub
...全文
301 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
canyqf 2004-11-19
  • 打赏
  • 举报
回复
Imports System.Runtime.InteropServices

...

<MarshalAs(UnmanagedType.ByValTStr, SizeConst=100> _
private lpszName As string

...

capGetDriverDescriptionA(0, lpszName, 100, Nothing, 100)

...
cnming 2004-11-19
  • 打赏
  • 举报
回复
up
hsn1982 2004-11-19
  • 打赏
  • 举报
回复
VB6.FixedLengthString(100)
就是等于VB中的dim ste as string * 100
定长字符串
canyqf 2004-11-19
  • 打赏
  • 举报
回复
faint, 语法错误而已...

<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=100)> _
private lpszName As string
cnming 2004-11-19
  • 打赏
  • 举报
回复
还是不行的

<MarshalAs(UnmanagedType.ByValTStr, SizeConst=100> _
private lpszName As string

private 提示“需要表达式”

cnming 2004-11-18
  • 打赏
  • 举报
回复
这样写也不行,在“〉”中提示需要表达式

capGetDriverDescriptionA(0, lpszName.Value, 100, Nothing, 100)
lpszName.Value提示不是string的成员
cnming 2004-11-18
  • 打赏
  • 举报
回复
up
canyqf 2004-11-17
  • 打赏
  • 举报
回复
<MarshalAs(UnmanagedType.ByValTStr, SizeConst=100>
private lpszName As string

Sub MapWebcamToWindow ....

好像VB里面SizeConst那里要这样写:SizeConst:=100, 但记不清楚...
cnming 2004-11-17
  • 打赏
  • 举报
回复
在这里该如何写啊?
canyqf 2004-11-17
  • 打赏
  • 举报
回复
好像就是这个特性:MarshalAs(UnmanagedType.ByValTStr, SizeConst=100)
不过给lpszName加上特性后,好像不能在方法体内申明...

16,553

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧