原型:
HRESULT XCreateService(IUnknown *pIUnkOuter,IServerX *pIServ,IUnknown **ppIUnk);第一种方法:
function CreateService(pIunkOuter:PIUnknown;pIServ:PIServerX;ppIUnk:PPIUnknown):HRESULT;第二种:
function XCreateService(var pIunkOuter : IUnknown;var pIServ:IServerX;var ppIUnk : PIUnknown):HRESULT;第三,四种:
function XCreateService(pIunkOuter:IUnknown;pIServ:IServerX;var ppIUnk:PIUnknown):HRESULT;
function XCreateService(pIunkOuter:IUnknown;pIServ:IServerX;out ppIUnk):HRESULT;
HRESULT XCreateService(IUnknown *pIUnkOuter,IServerX *pIServ,IUnknown **ppIUnk);第一种方法:
function CreateService(pIunkOuter:PIUnknown;pIServ:PIServerX;ppIUnk:PPIUnknown):HRESULT;第二种:
function XCreateService(var pIunkOuter : IUnknown;var pIServ:IServerX;var ppIUnk : PIUnknown):HRESULT;第三,四种:
function XCreateService(pIunkOuter:IUnknown;pIServ:IServerX;var ppIUnk:PIUnknown):HRESULT;
function XCreateService(pIunkOuter:IUnknown;pIServ:IServerX;out ppIUnk):HRESULT;
解决方案 »
- MAKEINTRESOURCE 可用参数列表
- 一个关于SQL表记数的问题~~~~~~~~~~~
- 做DLL程序时,系统提示:“无法定位程序输入点**于动态链接库上”。该怎样解决呢?
- dll问题高手请教
- 请问一下如何修改DELPHI中的控件的属性?
- 请问如何用delphi程序实现在局域网中控制某些机器上网,多谢。
- 又有一个delphi论坛成立了,大家去支持一下! http://www.91delphi.com
- 各位大虾请帮帮忙,怎样设置注册表让程序开机时自动运行!
- sql server 小问题
- 问一个小技巧问题:
- 在Delphi7中使用ClientDataSet控件,生成的exe文件必须带上midas.dll?
- 已知一个表的字段的某一项内容是另一个表的一个字段,
第二我觉得也可以,不过不会最先考虑
delphi里传递对象参数,要不要加var关键字?
接口引用和对象引用,是不是可以作为指针使用?接口引用和对象引用有木有差别?按照第一种实现,出现privileged instruction异常。第二种出现读地址错。
至于第三个参数是个双重指针:)
#include "stdio.h"BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}extern "C" __declspec(dllexport) void foo(void *p, char **s){
*s = "hello world!";
printf("%d, %d\n", p, *s);
}program testdll;{$APPTYPE CONSOLE}uses
SysUtils;procedure foo(p: TObject; var s: pchar); cdecl; external 'testdll.dll';
//procedure foo(p: TObject; out s); cdecl; external 'testdll.dll'; //效果一样:)var
p: TObject;
s: pchar;
begin
p:=TObject.Create;
writeln(integer(p), ', ', integer(s)); //此时s的值为0
foo(p, s);
writeln(integer(p), ', ', integer(s)); //s已被赋值,不为0了
p.Free;
readln;
end.
function XCreateService(pIunkOuter:IUnknown;pIServ:IServerX;var ppIUnk:PIUnknown):HRESULT;
function XCreateService(pIunkOuter:IUnknown;pIServ:IServerX;out ppIUnk):HRESULT;第五种:原函数没有加OUT注释,但一般情况下应该是out的。function XCreateService(pIunkOuter: IUnknown; pIServ: IServerX; out ppIUnk: IUnknown): HRESULT;
----------------------------------------
看需求咯,希望楼主能够理解下面的示例:)program test;{$APPTYPE CONSOLE}uses
SysUtils;procedure Test1(var obj: TObject);
begin
obj:=TObject.Create;
end;procedure Test2(obj: TObject);
begin
obj.Free;
end;var
obj: TObject;
begin
Test1(obj);
Test2(obj);
readln;
end.
这样类似。。不过个人习惯感觉是第一种
参数形式var pIunkOuter: IUnknown
是一样的,以此类推,所以1、2正确,3、4错误