typedef struct COMPONENT_INFO
{
short sMajor;
short sMinor;
} COMPONENT_INFO; [
object,
uuid(6C773819-BA76-4063-8887-9D62259B80F2),
helpstring("ITools Interface"),
pointer_default(unique)
]
interface ITools : IUnknown
{
[helpstring("method GetFileType")] HRESULT GetFileType([in]BSTR inputFile);
[helpstring("method set_OtherInfo")] HRESULT set_OtherInfo([in]COMPONENT_INFO Info);
};
现在COM组件已编好,不知有VB与DELPHI中如何来写COM组件的测试程序?Public Type COMPONENT_INFO
sMajor As Long
sMinor As String
End TypePrivate Sub Command2_Click()
Dim Obj As New COMSTUDYLib.Tools
Dim info As COMPONENT_INFO
info.sMajor = 10
info.sMinor = 5
Obj.set_OtherInfo (info)End Sub
可是在VB中却报错:
编译错误:
用户定义类型不能用不知错误是为什么,肯请各位赐教!
{
short sMajor;
short sMinor;
} COMPONENT_INFO; [
object,
uuid(6C773819-BA76-4063-8887-9D62259B80F2),
helpstring("ITools Interface"),
pointer_default(unique)
]
interface ITools : IUnknown
{
[helpstring("method GetFileType")] HRESULT GetFileType([in]BSTR inputFile);
[helpstring("method set_OtherInfo")] HRESULT set_OtherInfo([in]COMPONENT_INFO Info);
};
现在COM组件已编好,不知有VB与DELPHI中如何来写COM组件的测试程序?Public Type COMPONENT_INFO
sMajor As Long
sMinor As String
End TypePrivate Sub Command2_Click()
Dim Obj As New COMSTUDYLib.Tools
Dim info As COMPONENT_INFO
info.sMajor = 10
info.sMinor = 5
Obj.set_OtherInfo (info)End Sub
可是在VB中却报错:
编译错误:
用户定义类型不能用不知错误是为什么,肯请各位赐教!
可是我必须使用VC中的结构体呀,也就是VB中的自定义类型,如何实现?
肯请你多多赐教
'Dim Obj As New COMSTUDYLib.Tools 'Don't use it
Dim objs
set objs=CreateObject("Comstudylib.Tools")
还是不行
编译错误:
只有定义在公共对象模块中用户定义类型能秋变体类型相互转换或传递给后期绑定功能。
1. 在VB工程中添加一个"模块" : Module1
在此代码中写入你的sturct:
Public Type COM_STURCT
n1 As Integer '注意: VB中不存在short类型 ,如果下面代码同不过,建议你用long
n2 As Integer
End Type2. Private Sub Command2_Click()
'这中写法,必需有类型库的支持,即,你要再VB"工程"->"引用.."中,选中组件
Dim Obj As New COMSTUDYLib.Tools Dim info As Module1.COM_STRUCT
info.sMajor = 10
info.sMinor = 5
Obj.set_OtherInfo (info)End Sub
上面的思路接收你自定义数据没有问题,但无法传入.
vb中,传入的类型好像只能是variant类型. 如果你一定要传入的话, 就用varinat数组吧.