coinitialize函数(coinitialize函数头文件)

http://www.itjxue.com  2023-02-21 20:36  来源:未知  点击次数: 

多次调用CoInitialize没有什么问题吧

你好。

根据你的描述:

要用到MSXML,它是在构造函数里执行了CoInitialize,析构里执行了CoUninitialize,这是没问题的。

win7shell可以连接com口吗

win7shell可以连接com口。windowsshell提供的接口就是标准的COM接口,可以很方便的进行shell编程,shell编程是比较有意思的,可以通过操作系统给出的接口对操作系统进行定制,但windows操作系统平台给出的官方shell接口并不多。首先用CoInitialize函数初始化COM环境,返回HRESUTL,使用SUCCEDED或FAILED宏来检测初始化是否成功。使用CoCreateInstance函数创建一个你想要的组件对象,并赋给你提供的一个接口。使用该接口进行操作,如果要使用其他接口可以使用QueryInterface来查询其他接口。UnInitialize()卸载COM环境

CoInitialize;这句到底有什么作用,该如何解决

CoInitialize是Windows提供的API函数,用来告诉 Windows以单线程的方式创建com对象。应用程序调用com库函数(除CoGetMalloc和内存分配函数)之前必须初始化com库。

语法:HRESULT CoInitialize(_in_opt LPVOID pvReserved);

参数被保留,且必须为NULL。

返回值S_OK : 该线程中COM库初始化成功S_FALSE 该线程中COM库已经被初始化 CoInitialize () 标明以单线程方式创建。

使用 CoInitialize 创建可以使对象直接与线程连接,得到最高的性能。

CoInitialize并不装载COM 库,它只用来初始化当前线程使用什么样的套间。使用这个函数后,线程就和一个套间建立了对应关系。线程的套间模式决定了该线程如何调用COM对象,是否需要列集等。

CoInitialize ()并不会干扰客户和服务器之间的通信,它所做的事情是让线程注册一个套间,而线程运行过程中必然在此套间。

CoInitialize和CoUninitialize必须成对使用。

创建新的就手程序用该调用CoInitializeEx代替CoInitialize。

我用Delphi7.0 做的卡口在运行中出现 ”尚未调用CoInitialize."“ 找不到原因 ,有哪位帮助下 回答出 加分

这个函数一定要在使用任何ActiveX控件之前调用。要确保这一点,你可以打开工程文件(就是dpr文件)。可以右键单击工程文件,选择“View Source”。

一般工程文件的uses第一项是Forms,你在Forms之前加入ActiveX,就像这样

program ******;

uses

ActiveX,

Forms,

.........

然后在Application.Initialize之前加入一句Coinitialize(nil);就像下面这样

begin

Coinitialize(nil);

Application.Initialize;

COM编程(二) 简单总结下如何调用COM接口

总结一下:COM是component object model,组件对象模型的意思,com对象和com类不同于一般c++或vb或delphi中的对象和类,COM对象和COM类是独立于编程语言的,自有一套内存布局规范,所以可以实现二进制级的功能性重用,COM诞生的目的就是这个:跨越编程语言与开发平台的模块重用。(虽然目前.Net平台很好的解决了不同编程语言间的模块重用,比如vb.net和c#.net之间的重用,但那种重用是基于microsoft intermediate language的,不是本机代码级别的,.Net Framework其实就是一个运行时)

1 首先用CoInitialize函数初始化COM环境,返回HRESUTL,使用SUCCEDED或FAILED宏来检测初始化是否成功

2 使用CoCreateInstance函数创建一个你想要的组件对象,并赋给你提供的一个接口。

(责任编辑:IT教学网)

更多

推荐网页制作视频教程文章