3
我想写一个Delphi函数来注册一个DLL。我希望函数检查OleInitialize是否已经在调用之前调用过。我想我试图避免两次初始化的后果,因为我不确定它们可能是什么。我担心我的函数不能像regsvr32.exe那样处理各种dll。如何检查OleInitialize是否已被调用?
我想写一个Delphi函数来注册一个DLL。我希望函数检查OleInitialize是否已经在调用之前调用过。我想我试图避免两次初始化的后果,因为我不确定它们可能是什么。我担心我的函数不能像regsvr32.exe那样处理各种dll。如何检查OleInitialize是否已被调用?
看看在documentation:
返回值
[...]
S_FALSE
- COM库已初始化这个公寓。
...也:
通常,COM库是在一间公寓只有一次初始化。后续调用将会成功,只要他们不尝试更改公寓的并发模型,但将返回
S_FALSE
。
如果你的函数需要初始化COM,并且你不确定它是否已经被初始化,那么记录你的函数,说明它的一个先决条件是应用程序必须已经初始化它。然后你的功能不必担心它。 – 2010-07-19 05:11:14