G gxsh Unregistered / Unconfirmed GUEST, unregistred user! 2001-09-27 #1 用 delphi 做的 Activex dll 传递 WideString 参数在 VB 里出现非法操作,用 pchar 作参数 VB 不接受,如何解决?
S Sachow Unregistered / Unconfirmed GUEST, unregistred user! 2001-11-14 #3 我想起我用VBScript写ASP时需要的一个问题,当一个ActiveX组件的方法(函数)有1个参 数时,VBScript这样调用:FunctionName(Param)就可以,但是当有两个以上的参数 时,FunctionName(Param1,Param2,Param3...)就要报错, 必须得用: FunctionName Param1, Param2, Param3... 不知是不是这个问题。(抱歉,我不懂VB)
我想起我用VBScript写ASP时需要的一个问题,当一个ActiveX组件的方法(函数)有1个参 数时,VBScript这样调用:FunctionName(Param)就可以,但是当有两个以上的参数 时,FunctionName(Param1,Param2,Param3...)就要报错, 必须得用: FunctionName Param1, Param2, Param3... 不知是不是这个问题。(抱歉,我不懂VB)
G gxsh Unregistered / Unconfirmed GUEST, unregistred user! 2001-11-15 #4 我的 DLL 里的函数是这样写的(简化后): function GetText: WideString stdcall; function TcTest.GetText: WideString; begin Result:= WideString('abcdefghijk'); end;
我的 DLL 里的函数是这样写的(简化后): function GetText: WideString stdcall; function TcTest.GetText: WideString; begin Result:= WideString('abcdefghijk'); end;
M minikiller Unregistered / Unconfirmed GUEST, unregistred user! 2001-11-15 #5 FunctionName(Param1,Param2,Param3...)是要返回参数的 FunctionName Param1, Param2, Param3...是不需要返回参数的
Q qiya Unregistered / Unconfirmed GUEST, unregistred user! 2001-11-15 #6 不能用Result返回字符串! 你在声明方法时,可以将要返回的串作为一个输出参数,返回设为HRESULT!
G gxsh Unregistered / Unconfirmed GUEST, unregistred user! 2001-11-15 #7 delphi 不让用 string 作为输出参数,提示输出参数要用指针类型的,指针类型 vb 又不认。 怎么办?各位大侠救命啊!
Q qiya Unregistered / Unconfirmed GUEST, unregistred user! 2001-11-15 #9 参数类型可设为BSTR * 声明后,你看DELPHI生成的代码就明了! VB里调用时用BSTR 类型的作为参数就可以了!
G gxsh Unregistered / Unconfirmed GUEST, unregistred user! 2001-11-16 #10 谢谢qiva,还差一点点(没办法我的水平太低)。 我把代码改成: type TcTest = class(TTypedComObject, IcTest) protected function GetText(out str: WideString): HResult stdcall; end; implementation uses ComServ; function TcTest.GetText(out str: WideString): HResult; begin str:= WideString('abcdefghijkl'); Result := S_OK; end; delphi 里调用没问题,vb 里调用时不再出错,但返回的字符串总为空,该怎么办?
谢谢qiva,还差一点点(没办法我的水平太低)。 我把代码改成: type TcTest = class(TTypedComObject, IcTest) protected function GetText(out str: WideString): HResult stdcall; end; implementation uses ComServ; function TcTest.GetText(out str: WideString): HResult; begin str:= WideString('abcdefghijkl'); Result := S_OK; end; delphi 里调用没问题,vb 里调用时不再出错,但返回的字符串总为空,该怎么办?
Q qiya Unregistered / Unconfirmed GUEST, unregistred user! 2001-11-16 #11 我这里没有VB试,你把参数设为 Out 和 RetVal 试一下! str:= WideString('abcdefghijkl') 应该可以不用转换的,直接写就可以了吧 str := 'abc' Delphi自己知道转换
我这里没有VB试,你把参数设为 Out 和 RetVal 试一下! str:= WideString('abcdefghijkl') 应该可以不用转换的,直接写就可以了吧 str := 'abc' Delphi自己知道转换
G gxsh Unregistered / Unconfirmed GUEST, unregistred user! 2001-11-16 #12 OK,太感谢了,总算把哪个 TYPE LIB 弄明白了,TNND!不知道试了多少次,设置太多了,灵活的 后果是复杂。用VB 写哪个DLL 2分钟就搞定了,可 VB ……唉——