N Nizvoo Unregistered / Unconfirmed GUEST, unregistred user! 2003-03-17 #1 COM程序中某函数欲返回一个string类型,如何定义其类型,给VB调用用OleVariant出错,LPSTR也不中。。。急~~还有如何返回多个参数呢????感谢昨天大伙的顶 (100分)<br />COM程序中某函数欲返回一个string类型,如何定义其类型,给VB调用用OleVariant出错,LPSTR也不中。。。急~~
COM程序中某函数欲返回一个string类型,如何定义其类型,给VB调用用OleVariant出错,LPSTR也不中。。。急~~还有如何返回多个参数呢????感谢昨天大伙的顶 (100分)<br />COM程序中某函数欲返回一个string类型,如何定义其类型,给VB调用用OleVariant出错,LPSTR也不中。。。急~~
N Nizvoo Unregistered / Unconfirmed GUEST, unregistred user! 2003-03-17 #4 差点忘讲这个BSTR了,一用这个就听到声音。。。呵呵,出错也~~ Variant*没有这个~
L LeeChange Unregistered / Unconfirmed GUEST, unregistred user! 2003-03-17 #8 如果你用了TLB,那就好办了. 第一,决不要改变接口中函数的返回类型,确保返回的是HRESULT, 第二,添加一个返回参数,参数名随便起,Modifier设为out, ret,类型为Variant*.
N Nizvoo Unregistered / Unconfirmed GUEST, unregistred user! 2003-03-17 #9 为什么不能改变呢? 我除了两个串要取这个值,其它的我用的是WordBool返回,效果良好。
P proman Unregistered / Unconfirmed GUEST, unregistred user! 2003-03-17 #11 Com规范要求返回值必须是HResult,是一个整型.所以不能返回其它值.只有加一个输出参 数才解决这个问题.
N Nizvoo Unregistered / Unconfirmed GUEST, unregistred user! 2003-03-17 #12 就是用一个函数来检查做的结果,y/n??? out
N Nizvoo Unregistered / Unconfirmed GUEST, unregistred user! 2003-03-17 #13 缘何能返回WordBool,而且在里头可以选取那些type
L LeeChange Unregistered / Unconfirmed GUEST, unregistred user! 2003-03-17 #14 其实,你如果对一个参数的Modifier设为out retval后,就等于是设置了函数的返回值. 你改了以后refresh一下,再看看生成的代码,就什么都明白了. 你原来改为WordBool是不正确的做法,没出错仅仅是巧合.
其实,你如果对一个参数的Modifier设为out retval后,就等于是设置了函数的返回值. 你改了以后refresh一下,再看看生成的代码,就什么都明白了. 你原来改为WordBool是不正确的做法,没出错仅仅是巧合.
N Nizvoo Unregistered / Unconfirmed GUEST, unregistred user! 2003-03-17 #17 我试了的。。。 但还是不能访问。。 我把 function TTFyCom.CheckResult(out rvalue: OleVariant): HResult; begin rvalue := ‘123’; end; 我依旧取不到值
我试了的。。。 但还是不能访问。。 我把 function TTFyCom.CheckResult(out rvalue: OleVariant): HResult; begin rvalue := ‘123’; end; 我依旧取不到值
L LeeChange Unregistered / Unconfirmed GUEST, unregistred user! 2003-03-17 #18 呵呵,你做错了. 在TLB里:设置CheckResult的返回类型为HResult,添加一个参数rvalue,类型为Variant*,Modifier 中选中out和retval. 点击Refresh后生成的pas代码绝不是你帖出来的这样.
呵呵,你做错了. 在TLB里:设置CheckResult的返回类型为HResult,添加一个参数rvalue,类型为Variant*,Modifier 中选中out和retval. 点击Refresh后生成的pas代码绝不是你帖出来的这样.
C cxz9 Unregistered / Unconfirmed GUEST, unregistred user! 2003-03-17 #19 Bstr* 可以的呀 HRESULT _stdcall RemB([in] BSTR ins, [out, retval] BSTR * outs );