coinitialize函数(coinitialize函数头文件)
多次调用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函数创建一个你想要的组件对象,并赋给你提供的一个接口。