COM 组件调用 QueryInterface 失败原因? [问题点数:100分,结帖人Jade_luo]

Bbs1
本版专家分:60
结帖率 100%
Bbs10
本版专家分:136696
Blank
微软MVP 2014年10月 荣获微软MVP称号
2013年10月 荣获微软MVP称号
2012年10月 荣获微软MVP称号
Blank
蓝花 2009年2月 .NET技术大版内专家分月排行榜第三
Bbs14
本版专家分:816156
Blank
名人 2012年 荣获名人称号
Blank
状元 2010年 总版技术专家分年内排行榜第一
2009年 总版技术专家分年内排行榜第一
Blank
榜眼 2011年 总版技术专家分年内排行榜第二
Blank
金牌 2011年3月 总版技术专家分月排行榜第一
2011年2月 总版技术专家分月排行榜第一
2011年1月 总版技术专家分月排行榜第一
2010年12月 总版技术专家分月排行榜第一
2010年11月 总版技术专家分月排行榜第一
2010年10月 总版技术专家分月排行榜第一
2010年9月 总版技术专家分月排行榜第一
2010年8月 总版技术专家分月排行榜第一
2010年7月 总版技术专家分月排行榜第一
2010年6月 总版技术专家分月排行榜第一
2010年5月 总版技术专家分月排行榜第一
2010年3月 总版技术专家分月排行榜第一
2010年4月 总版技术专家分月排行榜第一
2010年2月 总版技术专家分月排行榜第一
2010年1月 总版技术专家分月排行榜第一
2009年12月 总版技术专家分月排行榜第一
2009年11月 总版技术专家分月排行榜第一
2009年10月 总版技术专家分月排行榜第一
2009年8月 总版技术专家分月排行榜第一
2009年7月 总版技术专家分月排行榜第一
2009年6月 总版技术专家分月排行榜第一
Bbs1
本版专家分:60
解决COM 组件调用 QueryInterface原因是什么
最近在项目中遇到了一些问题,但是也解决不了,不过在VS2005中运行一段时间没有出现什么大的问题,但是打包过后再调试原程序度不出现了以下的情况: 无法将类型为“TigerClawLib.CoKTTCR
接口 Word._Application 的 QueryInterface 失败
在<em>调用</em>word时出现的错误!!!! windwos2000,word2000 帮帮忙!!!高手!!!
COM组件的QueryInterface问题
[code=C/C++]rn#include rnusing namespace std;rnrn#include "../MyCOMServer/MyCOMServer.h"rn#include "../MyCOMServer/MyCOMServer_i.c"rnrnint main()rnrn HRESULT hr;rn IUnknown *pUnknown=NULL;rn IInterface1 *pInterface1=NULL;rn IInterface2 *pInterface2=NULL;rnrn //COM库的初始化rn hr=CoInitialize(NULL);rn if (!SUCCEEDED(hr))rn rn coutMul(10,10,&num2); //两个数相乘rn cout<Release();rn rnrn CoUninitialize();rn return 0;rnrn[/code]rn在VC6.0中通过ATL创建了一个COM<em>组件</em>,<em>组件</em>中有两个接口(通过insert new ATL Object以相同方式加入)rn问题:rn1、为什么第一次查询(查询接口1)成功,<em>调用</em>函数成功;而第二次查询<em>失败</em>(查询接口2)???rn2、通过IUnknown指针不是可以遍历到所有的接口吗?为什么上述程序能找到接口1而找不到接口2?rn3、在什么情况下<em>调用</em>Release()函数???
组件调用失败!求原因
用PB8的<em>com</em>/mts <em>com</em>ponent向导一步步生成,并编译后生成一个DLL文件和IDL文件。rn在另一个TARGET的代码如下:rnOLEObject PBObject,PBNVObjectrnlong ll_statusrndouble ld_resultrnPBObject = CREATE OLEObjectrn//这里PB80.n_zujian是你生成的COM的ID号码rnll_status = PBObject.ConnectToNewObject("PB80.n_zujian ")rnIF ll_status < 0 THEN rnDESTROY PBObjectrnMessageBox("Connecting to COM Object Failed", "Error: " + String(ll_status)) rnReturn rnelsernEND IFrn结果返回报错为-2 请有经验的朋友分析一下
引用COM组件MSXML2出现异常:接口 MSXML2.IXMLHTTPRequest 的 QueryInterface 失败
我的ASP.NET项目中引用了COM<em>组件</em>Microsoft XML, v3.0,用来<em>调用</em>一些页面取得返回值。以前使用没有问题。现在发现<em>调用</em>总是<em>失败</em>,并且抛出异常:接口 MSXML2.IXMLHTTPRequest 的 QueryInterface <em>失败</em>。rnrn关键代码如下:rnMSXML2.XMLDocumentClass xmlDoc = new MSXML2.XMLDocumentClass();rnMSXML2.XMLHTTPClass xmlHttp = new MSXML2.XMLHTTPClass();rnxmlHttp.open("GET", url, false, "", "");rnxmlHttp.send(xmlDoc);rnreturn xmlHttp.responseText;rnrn最近为了去掉系统自动<em>调用</em>的中文输入法,删除注册了两个dll,不知道是否跟这个有关。rn请精通此项的高手指点一二!多谢!
网站COM组件调用失败解决办法
网站需要对Office文件进行操作,在VS运行的时候一切正常,但是发布到IIS上,一直报错:COM<em>组件</em><em>调用</em><em>失败</em> 解决方法: 在配置节中加上一行 &amp;lt;identity impersonate=&quot;true&quot; userName=&quot;administrator&quot; password=&quot;密码&quot;/&amp;gt; 问题<em>原因</em> 网站的权限不足以<em>调用</em>COM<em>组件</em>。 ...
请问出现QueryInterface错误,该怎么解决
在程序中使用了COM<em>组件</em>,运行都很正常。但空闲几十分钟后,再次操作程序,往往会出现例外: 接口 Microsoft.Vsa.IVsaEngine 的 QueryInterface <em>失败</em>。 在我的程序中
对 IID 为“{00020970-0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 加载类型库/DLL 时出错
网上有很多答文,大部分都是因为Office多版本引起的dll<em>调用</em>不明确问题。此类通过删除注册表对应的office版本一般都能解决。 本人遇到的问题,是office2003 没有装在C盘,这也是我因为我向来不喜欢把东西装在C盘引起的。结果注册表搞了一大通,连路径都能记清楚了,还是没解决。后来想着是不是win Server 2016 服务器版本<em>原因</em>,是什么地方还需要进行设置,结果网上根本没有这与服务...
接口Excel._Application的QueryInterface失败,该如何解决?在线等!
代码:Excel.Application myExcel = new Excel.Application ( ) ; myExcel.Application.Workbooks.Add ( true
COM 组件调用 QueryInterface 失败原因?
大家好,请教一个问题: C#<em>调用</em>tlb<em>组件</em>问题;我先用tlbimp将tlb转成dll,再引用此dll;可是程序运行时,报COM <em>组件</em><em>调用</em> QueryInterface 因以下错误而<em>失败</em>: 不支持此接口
“{000208D5-0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败:库没有注册
安装的是office2016,用Excel时显示这个改怎么处理呢?各位大神帮我看看,谢谢谢谢!
引用COM组件失败?
引用了个COM<em>组件</em>COM + 1.0 Admin Type Libraryrn但是建立对象始终报错:rnCOMAdmin.COMAdminCatalogClass ccc = new COMAdmin.COMAdminCatalogClass();rnrn错误1 无法嵌入互操作类型“COMAdmin.COMAdminCatalogClass”。请改用适用的接口。rnrn这是什么问题?我用的VS2010,以前在VS2008上都不会报错的
ASP.NET中调用组件(VB编写)出现接口的QueryInterface失败???
首先应该说明的几点:rn 1.<em>组件</em>是用VB6.0编写的将VBA操作编译成,用于根据已经设计好的模版生成相关的Word文档.rn 2.该<em>组件</em>的V1.0引经运行正常.rn 3.客户有新的要求,我将<em>组件</em>修改了一下,添加一个属性及修改了一个方法(修改逻辑但对外接口没变),编译成V2.0的dll文件.rn 4.V2.0版本在控制台应用程序中<em>调用</em>没问题.rn 5.V2.0版本在ASP.NET工程中引用时,运行时出现了以下问题:rnrnMeaningProject.MeaningContentClass mycls = new MeaningContentClass();rnmycls.CaseReasonProperty="PropertyValue";rnmycls.IssueProperty= "IssueValue";rn......rnCaseReasonProperty为<em>组件</em>的公共属性,rnIssueProperty为新增加的公共属性,rn但是运行时出现了System.InvalidCastException接口MeaningProject._MeaningContent的QueryInterface<em>失败</em>.rnrn另外:rn 1.我在注册V2.0<em>组件</em>之前,已经先将V1.0版本用RegSvr32 -u给卸载了,然后才注册V2.0<em>组件</em>的,还不行???rn 2.我将<em>组件</em>卸载完后将注册表中没删除的也用手工删除了,再注册新的<em>组件</em>,还不行??rn 3.我将备份起来的V1.0给再注册进去,两个版本共存了,引用旧的版本可以但是引用新的版本不行(还是在属性赋值时提示接口的QueryInterface<em>失败</em>)??rn 实在是没办法了,各位兄弟姐妹帮帮忙!!!!rn
COM 组件创建失败
有个问题无法解决: rn我写了个应用程序,基于COM<em>组件</em>的,开发环境VS2005,客户程序是基于MFC的rn客户程序要<em>调用</em>COM<em>组件</em>,为了发布软件容易些,<em>组件</em>和客户程序均采用静态链接方式生成.rn制作好安装程序rn拷贝到同学的机子上rn写注册表成功!rn查找CLSID成功rn可是创建<em>组件</em><em>失败</em>!!!rnrn高手指教一下,为何呢?
COM编程中QueryInterface
在网上看到关于QueryInterface实现的介绍,有些不懂。rnrn[color=#FF0000]HRESULT 实现类::QueryInterface( const IID& iid,void **ppv)rnrn if( iid== IID_接口一)rn *ppv=(j接口一*) thisrn else if( iid== IID_接口二)rn *ppv=(j接口二*) thisrnrn //其他以此类推rnrnQueryInterface中查询的时候,是将实现类的this指针强制转换成要查询的接口的类型,这个时候在内存中发生的操作是将this的内存块切割成要查询的接口的内存大下,然后将这块内存填入传入的void指针。这就获取了要查询的接口。因为实现类的内存中是包含了要查询的接口的内存结构,因此,上面的操作是可实现的。rn原文网址是:http://blog.csdn.net/dotnet90/archive/2009/02/14/3890251.aspx[/color]rnrn我不明白的是当一个实现类中有多个接口的时候,为什*ppv都等于this,强制转换可以改变它的值吗?rnrn
QueryInterface执行失败,我如何知道失败原因呢?
// Access IAdvancedMathrn IAdvancedMath* pAdvancedMath = 0;rn hr = pMath->QueryInterface( IID_IAdvancedMath,rn (void**) &pAdvancedMath );rn if ( SUCCEEDED( hr ))rn rn pAdvancedMath->Factorial( 12, &lResult );rn cout << "12! = " << lResult << endl;rnrn pAdvancedMath->Fibonacci( 12, &lResult );rn cout << "The Fibonacci of 12 = " << lResult << endl;rn
QueryInterface 导致程序出错
这两天碰到个新问题,用原来写的CFilterDataSender类(一个render filter,用途只是把视频数据抛出链路) ,在QueryInterface借口的时候程序异常(在Mobile系统中,程序如果异常不会退出,会忽略该次操作)。遍寻<em>原因</em>未果。把原来的程序拿出来编译后通过。分析<em>原因</em>如下:   1. 两个静态库的结构不同(把视频采集和播放部分封在静态库中),一个把directsho
解决 无法将类型为“Excel._Application的QueryInterface”的 COM 对象强制转换为接口类型
ASP.NET中用C#<em>调用</em>EXCEL进行导出时,有时会出现接口Excel._Application的QueryInterface<em>失败</em>的提示。 这通常是office<em>组件</em>安装注册的问题,而非程序本身
COM学习笔记(一):入门及QueryInterface
#include 定义了-> #define interface struct #include 定义了-> #define pascal __stdcall //*****************************************************************************   //简单到爆之程序--COM雏形   #include 
关于COM组件QueryInterface返回E_NOINTERFACE的问题
在程序中,C++工程<em>调用</em>了一个C#写的COM<em>组件</em>,但是在CreateInstance创建一个对象的时候总是没有创建成功。 错误是在CreateInstance中,首先<em>调用</em>了CoCreateInstan
IIS7上出现错误无法将类型为 的 COM 对象强制转换为接口类型 。
-
关于com的QueryInterface
我是初学COM,我看<em>组件</em>的QueryInterface函数的时候有个疑问:rn一个COM<em>组件</em>CMath,含有一个接口,IID为IID_ISimpleMath。QueryInterface的定义为:rn[code=C/C++]rnSTDMETHODIMP CMath::QueryInterface(REFIID riid, void **ppv)rnrn if(riid == IID_ISimpleMath)rn *ppv = static_cast(this);rn else if(riid == IID_IUnknown)rn *ppv = static_cast(this);rn elsern rn *ppv = 0;rn return E_NOINTERFACE;rn rn reinterpret_cast(*ppv)->AddRef();rn return S_OK;rnrnrn[/code]rnrn从上面的代码中可以看出,我通过CoCreateInstance得到一个<em>组件</em>后,每次用IID_ISimpleMath查询的接口指针都是this static_cast的,得到的接口地址应该一样才对,但是为什么,我第一次查询后不释放,第二次再查询,地址就不一样了呢??rn如:rn [code=C/C++]rn ISimpleMath *pSimpleMath1 = NULL;rn ISimpleMath *pSimpleMath2 = NULL;rn pMath->QueryInterface(IID_ISimpleMath,(void **)&pSimpleMath1);rn pMath->QueryInterface(IID_ISimpleMath,(void **)&pSimpleMath2);rnrn //pSimpleMath1和pSimpleMath2的值不一样!rnrn[/code]rnrn假如:rnrn[code=C/C++]rn ISimpleMath *pSimpleMath1 = NULL;rn ISimpleMath *pSimpleMath2 = NULL;rn pMath->QueryInterface(IID_ISimpleMath,(void **)&pSimpleMath1);rn ISimpleMath *pSimpleMath_temp = pSimpleMath1;rn pSimpleMath1->Release();rn pMath->QueryInterface(IID_ISimpleMath,(void **)&pSimpleMath2);rnrn //pSimpleMath2和pSimpleMath_temp的值是一样的!rn[/code]rnrn请问下,假如在一个程序中,我分别用这两种方式得到接口,然后对COM进行操作,结果是不是一样的??谢谢!!rnrn
接口 Excel._Application 的 QueryInterface 失败
我在把数据导出到excel时出现了:接口 Excel._Application 的 QueryInterface <em>失败</em>。rn请教高手问题出在那儿
使用QueryInterface 出错?
简单的接口参数<em>调用</em>。 Client端 #import "..\msado15.dll" no_namespace rename("EOF","adoEOF") #import "..\myDll.dl
如何解决编程中Excel不能读取的问题
无法将类型为“Microsoft.Office.Interop.Excel.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Excel._Application”。此操作<em>失败</em>的<em>原因</em>是对 IID 为“{000208D5-0000-0000-C000-000000000046}”的接口的 COM <em>组件</em><em>调用</em> QueryInterfa
多接口COM组件调用(COM002)
多接口COM<em>组件</em>的<em>调用</em>(COM002) 多接口COM<em>组件</em>的<em>调用</em>(COM002) 多接口COM<em>组件</em>的<em>调用</em>(COM002)
对 IID 为“{00020970-0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 加载类型库/DLL 时出错。
原文地址:http://www.cnblogs.<em>com</em>/gisoracle/p/5440846.html 无法将类型为“Excel.ApplicationClass”的 COM 对象强制转换为接口类  型“Excel._Application”。此操作<em>失败</em>的<em>原因</em>是对 IID 为“{000208D5  -0000-0000-C000-000000000046}”的接口的 COM <em>组件</em><em>调用</em> 
C#调用matlab时,出现异常:不支持此接口 (异常来自 HRESULT:0x80004002)(E_NOINTERFACE)
无法将类型为“MLApp.MLAppClass”的 COM 对象强制转换为接口类型“MLApp.DIMLApp”。此操作<em>失败</em>的<em>原因</em>是对 IID 为“{669CEC93-6E22-11CF-A4D6-0
Com组件调用Com组件的问题
现在有个 A.dll 这个Com<em>组件</em>已经注册, 现在我自己写了一个Com<em>组件</em>B.dll,用ATL向导做的, 现在我要在B里面写代码<em>调用</em>A里面的接口 请问怎么做?rnrn很着急啊! 最近老和COM<em>组件</em>打交道 快崩溃了!! 大家帮忙想想办法! 谢谢了
COM组件调用COM组件的问题
我现在有A<em>组件</em>和B<em>组件</em>,均是在VC6中创建的,A、B各有若干个接口。rn现在我想B中的<em>调用</em>A中的接口,我在B的idl文件中import了A的idl文件,以前是<em>调用</em>正常的,在vs2005中用C#写的demo<em>调用</em>也正常。rn最近我修改了A<em>组件</em>中某个接口的方法,增加了2个参数,然后重新编译A和B,在demo中<em>调用</em>时,只引用B<em>组件</em>,可是通过B<em>组件</em>查看A<em>组件</em>中的这个接口的方法,参数数量还是原来的数目,而不是增加了2个参数后的数量。rn可是如果我在demo中直接引用A<em>组件</em>,查看其接口时,发现是正确的,也就是参数数量是添加了2个之后的数量。rn还有,我在2005中创建<em>组件</em>,2005中<em>调用</em>,修改接口方法后,在demo中查看却是正常的。rnrn大家帮忙看下,我的问题在哪里?谢谢啦!
php 调用com失败
web服务器是win2000server+apache2.0.34+php5.0,出错提示:Uncaught exception '<em>com</em>_exception' with message 'Failed to create COM object `MBSCOMObject.MBSSecurity': 系统找不到指定的文件。 该<em>com</em>注册是成功的,用别的客户端程序在web服务器上<em>调用</em>该<em>com</em>运行是成功的。请问各位大侠有可能是什么<em>原因</em>?
接口 SQLDMO.NameList 的 QueryInterface 失败
接口 SQLDMO.NameList 的 QueryInterface <em>失败</em>,我用C#写的想<em>调用</em>网络上所有的SQLServer服务器, rnSQLDMO.Application sqlApp = new SQLDMO.ApplicationClass(); rnSQLDMO.NameList sqlServerNames = null; rnsqlServerNames = sqlApp.ListAvailableSQLServers();
接口 Microsoft.Office.Interop.Excel._Application 的 QueryInterface 失败
我在asp.net中测试打开Excel进程,结果出现如题所示的错误,请问是怎么回事?rn源代码如下:rnusing Microsoft.Office .Interop ;rn ..................rnMicrosoft.Office .Interop .Excel .Application app = new Microsoft.Office .Interop .Excel .ApplicationClass ();rnapp.Quit ();rnapp = null;
COM组件没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))
1、解决办法:在项目属性里设置“生成”=&amp;gt;“目标平台”为x86而不是默认的ANY CPU;  
使用COM组件时,QueryInterface调用失败是什么原因
在WinCE平台上<em>调用</em>总<em>失败</em>,什么都没法干了,大家帮我分析一下吧
COM编程中的接口查询QueryInterface的实现原理
我们都知道,COM<em>组件</em>编程中,QueryInterface实现的接口之间的查询,通过这个接口,我们可以获取该<em>组件</em>中其他的接口。但是,QueryInterface实现的原理是什么呢,首先,我们看一下基本的COM实现。一般来说,COM是 通过多继承实现多个接口,如下图   而对应的QueryInterface实现如下 HRESULT 实现类::QueryInterface(
System.Speech 语音合成的问题?
我用的 VS2010,.NET4.0,引用.NET中的 System.Speech.dll,在本机加载语音库,发音都正常,但是生成应用程序,并用VS2010安装部署后,发送给别人,有的用户无法使用,(
导出excel失败,提示提示加载类型库/DDL出错 ?
我想做导出数据到excel,引用Excel的动态链接库Microsoft Excel 11.0 Object Library(2003版本的),并在程序里添加了 using Excel; 在我自己的笔
调用 DLL失败原因
<em>调用</em>dll时:rntypedef void (*pShow)(int); rnpShow Show=(pShow)::GetProcAddress(hDll,"DLLFunc");rnrn其中 hDll有值 不为空 加载dllfunc也是成功的rn可是为什么 show的值为空呢
相机调用失败原因
这里只介绍楼主开发过程中遇到的且容易忽略的两点: 是否开启相关权限。 在打开相机之前,就已经使用了相机(二次打开相机),且未对相机资源进行回收。 也就是说,在相机使用结束后,应及时释放相机资源,解除相机占用,接下来才能正常使用相机。 ...
RegRestoreKey调用失败原因
HKEY hRegKey=NULL;rnDWORD dwNum;rnif(RegOpenKey(HKEY_CURRENT_USER,"Software\\Success",&hRegKey)!=ERROR_SUCCESS)rnrn //错误处理....rnrn SetPrivilege(SE_RESTORE_NAME|SE_BACKUP_NAME,TRUE);rn RegRestoreKey(hRegKey,"RegBackup",0);//运行<em>失败</em>!!!rn RegCloseKey(hRegKey);rn这是自己写的恢复注册表子项内容的代码,但运行后<em>失败</em>,请高手们帮我找找<em>原因</em>?
pthread_mutex_destroy()调用失败原因
mutex不处于被锁状态(使用pthread_mutex_trylock()返回成功),那还有什么<em>原因</em>会使pthread_mutex_destroy()<em>调用</em><em>失败</em>呢?rnrn还有,pthread_mutex_destroy()<em>调用</em><em>失败</em>不置error的么?我<em>调用</em>了一下perror(),结果竟然是Success
COM组件调用组件的问题
A和B两个<em>组件</em>,各有一个接口:IA1和IB1,其中IB1的一个方法Bfun的返回参数类型为IA1,也就是说IB1<em>调用</em>了IA1接口rn然后有一个C#写的<em>调用</em><em>组件</em>的demornrndemo中,我只引用了B.dll,然后在<em>调用</em>IB1的方法Bfun时,需要返回一个IA1类型的参数,这个参数我通过B<em>组件</em>就可以声明了!这样是不是不对?rnrn问题有3个:rn1、demo中,如果只引用B.dll后,是不是只能看到B的接口,看不到A的接口?rn2、demo中,如果需要定义接口IA1,是不是必须要把A.dll引用进来,然后using ALib; 然后再声明一个接口对象?rn3、<em>组件</em>代码中,<em>组件</em>B在引用A的接口时,该如何引用呢?就是在B的idl文件中该如何写呢?rnrn多谢多谢啦!
我在C#winform程序中药调用Excel接口,出现这个问题
-
Word.Application的 COM 对象强制转换为接口类型时报错
-
大家有空帮忙吗?无法将类型为“Microsoft.Office.Interop.Excel.ApplicationClass”的 COM 对象强制转换为接口类型
无法将类型为“Microsoft.Office.Interop.Excel.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Ex
【求助】 Microsoft.Office.Interop.Excel.Application 实例化报错怎么解决?
//建立Excel对象 Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.A
QueryInterface详解 COM
QueryInterface 接口查询 IUnknown:        所有的COM接口均需要继承IUnknown接口。因此,若某个用户拥有一个IUnknown接口指针,它并不需要知道它所拥有的接口指针到底是什么类型的,而只需要通过此接口就可以用来查询其他接口就行了。        由于所有的COM接口都继承了IUnknown,每个接口的vbtl的前三项都是QueryInterface,A
COM组件调用过程
概念 COM套件   COM<em>组件</em>的运行环境,包括:COM<em>组件</em>的数据、变量和线程调度方式。
COM组件的实现和调用
COM<em>组件</em>的实现和<em>调用</em>,VC6平台,简单的例子,适合初学者
怎么调用com组件
我怎么<em>调用</em>一个<em>组件</em>呀 是大漠插件, 名字dm.dll. rnrn我先注册了,现在要创建对象,可是一直不行呀, 作者给我说用rnCreateDispatch 我在论坛找到这个2001年的回复: 谁帮解答下呀。 rnrn首先:AfxOleInit(); 要在 App::InitInstance()中出现, rn 用于初始化<em>com</em>环境; rn其次: rnrnIMyCom <em>com</em>m; rnCLSID clsid; rn::CLSIDFromProgID(L "YourCom.MyCom.1 ",&clsid); rn<em>com</em>m.CreateDispatch(cls); rnrn其中 "YourCom.MyCom.1 " 可在注册表里查到 rn就是你的 Com 的注册项的ProgID; rnrnrnrnrn这是我自己写的代码rnrnwin32平台控制应用程序rnrn#includern#includern#includernusing namespace std;rnrnint main()rn rnHINSTANCE hinst;rnrnxx=int(ShellExecute(NULL,_T("open"),_T("regsvr32"),_T("..\\dm.dll"),NULL,SW_HIDE));rnif(xx),NULL);rnrn//这里是注册,我测试注册成功了rnrnrnrn头文件 tchar.h里的是这个rnrnrn#define _T(x)rn#define _TEXTrnrnrnrnrnrnrnrnrnrnrnrnrn搞了4天了 还是没弄成功呀。麻烦了
vc调用com组件
本人初识<em>com</em>技术rn然后自己用vc写了一个简单的<em>com</em><em>组件</em>,其中只有一个方法rn然后我在另一个工程里<em>调用</em>这个<em>组件</em>,rnrn#include rn#include "111.h" //<em>com</em>接口头文件rn#pragma <em>com</em>ment(lib, "111.lib") //<em>com</em> lib文件rnvoid main()rnrn IFun* pfun = NULL;rn CoCreateInstance(CLSID_Fun, NULL, CLSCTX_INPROC_SERVER, IID_IFun, (void**)&pfun);rn int a = 0;rn pfun->add(2, 21, &a);rnrnrn就这么简单的一个<em>调用</em>rn编译时CLSID_Fun IID_IFun这个标示未定义rn请问这是怎么回事rn而用同样的方式<em>调用</em>别人写的<em>com</em><em>组件</em>却没有任何问题rn请大家帮我解答一下
QT调用com组件
<em>com</em><em>组件</em>中定义了一个结构体,并且有一个接口的形参是这个结构体的指针。现在我在QT程序中怎样初始化这个结构体,并且<em>调用</em>这个接口。
QueryInterface 实现及使用的完整的例子
下面我们将把前面所提到过和各代码段组合起来,以构成一个说明QueryInterface 实现及使用的完整例子。总的来说可以将这些代码分成三部分。第一部分是接口IX、 IY 和 IZ 的定义部分。接口 IUnknown 的定义在 Win32 SDK 的头文件 1 见UNKNWN . H 中。第二部分是<em>组件</em>的实现。类 CA 实现了一个支持 IX 和 IY 接口的<em>组件</em>。QueryInterface的实现
com组件的事件调用
我现在编写一个控制台应用程序,这个程序要用到一个<em>com</em><em>组件</em>的事件,请问我该如何<em>调用</em>此<em>com</em><em>组件</em>?
COM组件调用??
我用C++ 编写了2个很简单的<em>com</em><em>组件</em>,是dll。能不能用第三个<em>com</em>3<em>组件</em>把这两个封装起来,<em>调用</em><em>com</em>3的接口时,<em>com</em>3再<em>调用</em><em>com</em>1或者<em>com</em>2的函数??rn不知道COM是否能这样做,我是这两天才接触COM,请大家多多关照了!rn谢谢了!!
com组件调用问题
现在我知道uuid。rn怎样通过这个uuid来<em>调用</em>一系列的<em>com</em><em>组件</em>?rn这些一系列<em>com</em><em>组件</em>提供的方法一致。rn请问可以实现吗?怎样实现有例子最好。
JACOB调用 com组件
package umessage; import <em>com</em>.jacob.activeX.ActiveXComponent; import <em>com</em>.jacob.<em>com</em>.Dispatch; import <em>com</em>.jacob.<em>com</em>.Variant; public class Hello { public static void main(String[] args) { // ...
wpf调用com组件
wpf<em>调用</em><em>com</em><em>组件</em>,似乎没办法<em>调用</em>。而且<em>com</em><em>组件</em>似乎也是要界面的!
MFC调用com组件
MFC <em>调用</em>C#dll注册的COM<em>组件</em>,怎么写?
jacob调用com组件
<em>com</em><em>组件</em>可以存在exe,或者dll中,而且对vb,vc,delphi等语言提供了统一的<em>调用</em>,而dll只能存在于dll文件中,而且不同语言<em>调用</em>方式不一样,<em>com</em><em>组件</em>开发难度相对于dll较大,多用于大型项目中。 java主要使用jacob来<em>调用</em><em>com</em><em>组件</em>。 1.注册<em>com</em><em>组件</em>(这里使用大漠插件dm.dll) regsvr32 dm.dll 另外regsvr32 /u dm.dll 代表卸载c
Vb调用COM组件
COM<em>组件</em>代码如下:rn[code=c]rnrnlimport "oaidl.idl";rnimport "ocidl.idl";rn [rn object,rn uuid(7FE82A7D-0799-4974-874A-7158DA9608D5),rn dual,rn helpstring("IMyCOMDll2 Interface"),rn pointer_default(unique)rn ]rn interface IMyCOMDll2 : IDispatchrn rn [id(1), helpstring("method COMDLL2_ADD")] HRESULT COMDLL2_ADD(int a ,int b);rn ;rnrn[rn uuid(2F3B8FFB-359A-4E1D-8844-F99673280A4F),rn version(1.0),rn helpstring("COMDLL2 1.0 Type Library")rn]rnlibrary COMDLL2Librnrn importlib("stdole32.tlb");rn importlib("stdole2.tlb");rnrn [rn uuid(37FCA1D5-08DA-4081-A61E-209BE28EE5FB),rn helpstring("MyCOMDll2 Class")rn ]rn coclass MyCOMDll2rn rn [default] interface IMyCOMDll2;rn ;rn;rnrn[/code]rnrnVB代码如下:rnrn[code=vb]rnrnDim ctp As COMDLL2Lib.MyCOMDll2rnrnPrivate Sub Command3_Click()rn Dim n As Integerrnn = ctp.COMDLL2_ADD(1, 1)rnEnd SubrnrnPrivate Sub Form_Load()rnSet ctp = New COMDLL2Lib.MyCOMDll2rnEnd Subrnrn[/code]rnrn问题:编译时候一直报错错误信息为“Excpeted Function or Variable”rnrnrn是什么意思?
如何调用 com 组件
我用delphi写了一个间单的<em>com</em> <em>组件</em>,只有一个属性和一个方法,在vb 能成功<em>调用</em>,在dephi 中不知如何<em>调用</em>?请赐教!
FB调用COM组件
FB<em>调用</em>COM<em>组件</em><em>调用</em>源码,有学习的同学可以下载,有文章说明,此为代码
com组件简单实现和调用
<em>com</em><em>组件</em>简单实现和<em>调用</em> <em>com</em><em>组件</em>实例 VC6.0先创建<em>com</em><em>组件</em>
com组件调用
我现在编写一个控制台应用程序,这个程序要用到一个<em>com</em><em>组件</em>的事件,请问我该如何<em>调用</em>此<em>com</em><em>组件</em>及此<em>组件</em>的事件呢?
com组件调用的问题
<em>调用</em>了一个<em>com</em><em>组件</em>的ui 界面,想用另外一个按钮<em>调用</em>这个<em>com</em><em>组件</em>的unload 方法,可是如何才能获得刚才那个已创建的<em>com</em>对象的实例呢?rn
调用COM组件的问题
<em>调用</em>一个COM<em>组件</em>时,总出问题,后来发现这个COM<em>组件</em>依赖于另外一个COM<em>组件</em>,找到这个COM<em>组件</em>dll,但是怎么用啊?rn我用C#写的<em>调用</em>程序,直接添加引用好像不行,应该怎么引用啊?rn急问,谢谢。。。。
PB调用com组件
还是上次我问的那个问题,因为Pb不能直接<em>调用</em>C#编写的dll文件,这次我用C#编写的是<em>com</em><em>组件</em>。rn因为我不会用pb,希望能帮帮忙,十分感谢!!!rn需求下载地址:[url=http://download.csdn.net/detail/l1160974051/4435896][/url]
调用com组件报错!!!
我系统是64位的,需要<em>调用</em>office的ocr获取图片中的文字,然后我下载了一个interop.modi.dll(32位)的,在实例对象的时候(MODI.Document doc = new MODI.Document();)报错,信息如下》,是什么导致的,我已经注册好了dll了。rnrnSystem.Runtime.InteropServices.COMException (0x80040154): 检索 COM 类工厂中 CLSID 为 40942A6C-1520-4132-BDF8-BDC1F71F547B 的<em>组件</em>时<em>失败</em>,<em>原因</em>是出现以下错误: 80040154。
C#调用com组件
现在有这个需求,有一个用VC写的COM<em>组件</em>,我这要在C# VS中<em>调用</em>这个<em>com</em><em>组件</em>,理由有些结构体,函数方法什么的,求大神指导怎么<em>调用</em>,这个结构体怎么<em>调用</em>啊。。。。
如何调用COM组件
请问在Visual C#.NET中如何<em>调用</em>Visual C++6.0编写的COM<em>组件</em>?rn非常感谢!!!
CB调用COM组件
CB<em>调用</em>COM<em>组件</em> COM BCB <em>调用</em>CB<em>调用</em>COM<em>组件</em> COM BCB <em>调用</em>
Com组件调用流程
Com<em>组件</em>的<em>调用</em>流程.doc
JAVA调用COM组件
JAVA<em>调用</em>COM的JACOB.JAR和JACOB.DLL文件
COM组件调用.rar
COM<em>组件</em><em>调用</em>.rarCOM<em>组件</em><em>调用</em>.rarCOM<em>组件</em><em>调用</em>.rar
js调用COM组件
在js中<em>调用</em>COM<em>组件</em>,有个方法的参数带有out怎么处理,原型 rn Void RichonreaderClass.readBlk(byte blknum,byte blkcount,out array pContent)
vb 调用com组件
vb能编辑<em>com</em>吗?比如我一个m文件是关于矩阵计算的,然后将vb界面的数据与m文件进行计算,能计算吗?m文件是matlab做的,求高人指点,谢谢,
C#调用COM组件
我这里有一个VC写的<em>组件</em>,如何用C#来<em>调用</em>它,求源码。rn下面的代码是COM<em>组件</em>的主要代码,主要有三个函数组成:阳历日期转阴历日期,阴历日期转阳历日期,阳历日期转星期。其中在阴历和阳历互相转换的函数中,是应用查表的方式进行转换的rn//阳历日期转阴历日期rnSTDMETHODIMP Cyangconvyin::yangconvyin(WORD *yangdate, WORD *yindate, BOOL *prunyue, CHAR *yindateString)rn//阳历日期转阴历日期rnSTDMETHODIMP Cyangconvyin::yangconvyin(WORD *yangdate, WORD *yindate, BOOL *prunyue, CHAR *yindateString)rn//阳历转换为星期rnSTDMETHODIMP Cyangconvyin::yangconvweek(WORD *yangdate, CHAR *weekString)rn
java调用com组件
以下是我java的代码 rnimport jp.ne.so_net.ga2.no_ji.j<em>com</em>.*; rnpublic class practice rn public static void main(String[] args) rn Process(); rn rn public static String Process() rn ReleaseManager rm = new ReleaseManager(); rn try rn IDispatch java<em>com</em> = new IDispatch(rm, "apple.app"); rn rn rn long strRet = java<em>com</em>.add1(1,2); rn System.out.println("return: " + strRet); rn rn catch ( Exception e ) rn e.printStackTrace(); rn rn finally rn rm.release(); rn rn return null; rn rn rn rn rn但总是出错,如下 rnpractice.java:11: cannot resolve symbol rnsymbol : method add1 (int,int) rnlocation: class jp.ne.so_net.ga2.no_ji.j<em>com</em>.IDispatch rn long strRet = java<em>com</em>.add1(1,2); rn ^ rn1 error rn rnc++的add1函数如下: rnlong app::add1(long n1, long n2) rn rn // TODO: Add your dispatch handler code here rnreturn n1+n2; rn rn rn我是外行,弄了很长时间就是解决不了,j<em>com</em>我已经配置好了,我不知道该怎么解决,哪rn位朋友了解这方面给点详细意见,谢谢了。 rn
WPF调用COM组件
本实例包括一个c++写的COM<em>组件</em>,一个WPF工程,其中WPF<em>调用</em>该COM<em>组件</em>中的接口函数,从而实现C#<em>调用</em>C++。
dephi调用COM组件
最近因为要用用Dephi<em>调用</em>.net开发的一个<em>com</em><em>组件</em>,<em>调用</em><em>com</em><em>组件</em>中的方法没问题,但是注册COM<em>组件</em>中的事件却不会。急用,求大侠帮助!!!!!!!!!!!!!
COM组件调用的问题
现在我有<em>com</em><em>组件</em>的动态库(dll),vc怎么样才能<em>调用</em>dll提供的接口。麻烦大哥大姐帮我解决一下,最好给出c++ 代码,谢谢了先!
创建COM组件失败的问题
我用ATL写了一个非常简单的COM<em>组件</em>,接口中只有一个方法test,返回一个long数值。rn用VB<em>调用</em>成功。rn但是用C进行 CoCreateInstance 总是<em>失败</em>,返回总是错误的hr。代码如下。(dll已经注册成功)rnrnvoid main()rnrn IUnknown* pUnk = NULL;rn HRESULT hr;rnrn CoInitialize(NULL);rnrn hr = CoCreateInstance(CLSID_test, NULL, CLSCTX_ALL, IID_IUnknown, (void**)pUnk);rnrn if(SUCCEEDED(hr))rn rn ...... rn rnrn CoUninitialize();rn
COM 组件创建实例失败??
我用vs2008 asp.net(c#)开发了语音合成系统,在本机运行的挺好,但在服务上不行,报一下错误:rnrnSystem.Runtime.InteropServices.COMException (0x8004503A): 从 IClassFactory 为 CLSID 为 47206204-5ECA-11D2-960F-00C04F8EE628 的 COM <em>组件</em>创建实例<em>失败</em>,<em>原因</em>是出现以下错误: 8004503a。rnrnrn请各位解答一下。rn
com组件注册失败 0x8007005
通过regsvr32.exe 注册<em>com</em><em>组件</em>时,注册<em>失败</em>!!rnrn弹出一个<em>失败</em>的对话框rnrnDllRegister in "abc.dll" failedrnReturn code was:0x80070005rnrnrn查了相关资料问题出在没有以Administrator用户执行命令rn通过这种方式还是不成功!!!rnrnrn大家有没有遇到类似情况的,给个提示
求助!注册COM组件失败
小弟最近闲来无事翻了翻COM技术的东西(以丰富自己的知识库作为目的)rnrn跟着教程做了一个简单的DEMO,该COM<em>组件</em>是Inprocess Server,说白了就是一个普通的DLL,用户<em>调用</em>的时候提交两个整数a和b,该<em>组件</em>给出a+b的值,用VS创建了一个Win32 DLL项目,现在要把COM<em>组件</em>注册到系统上,卡住了rnrn这个项目我暂且称之为Fooornrn实现<em>组件</em>注册的源代码如下(模仿Don Box的Essential COM中的做法)rnrnRegistry.cpprnrn[code=c]rn#include "stdafx.h"rn#include "Registry.h"rn#include "Global.h"rnrnconst char *g_RegTable[][3] = rn // format is key, value name, valuern "CLSID\\F8771B89-7971-4085-8D5F-88F7C140698B", 0, "FastAddition" ,rn "CLSID\\F8771B89-7971-4085-8D5F-88F7C140698B\\InprocServer32", 0, rn (const char*)-1 // rogue value indicating file namern ,rn "CLSID\\F8771B89-7971-4085-8D5F-88F7C140698B\\ProgID", 0, "Fooo.FastAddition.1" ,rn "Fooo.FastAddition.1", 0, "FastAddition" ,rn "Fooo.FastAddition.1\\CLSID", 0, "F8771B89-7971-4085-8D5F-88F7C140698B" ,rn;rnrnSTDAPI DllRegisterServer(void)rn HRESULT hr = S_OK;rn // look up server's file namern char szFileName[MAX_PATH];rn GetModuleFileNameA(g_hModule, szFileName, MAX_PATH);rn // register entries from tablern int nEntries = sizeof(g_RegTable) / sizeof(*g_RegTable);rn for (int i = 0; SUCCEEDED(hr) && i < nEntries; i++) rn const char *pszKeyName = g_RegTable[i][0];rn const char *pszValueName = g_RegTable[i][1];rn const char *pszValue = g_RegTable[i][2];rn // map rogue value to module file namern if (pszValue == (const char*)-1)rn pszValue = szFileName;rn HKEY hkey;rn // create the keyrn long err = RegCreateKeyA(HKEY_CLASSES_ROOT,rn pszKeyName, &hkey);rn if (err == ERROR_SUCCESS) rn // set the valuern err = RegSetValueExA(hkey, pszValueName, 0,rn REG_SZ, (const BYTE*)pszValue,rn (strlen(pszValue) + 1));rn RegCloseKey(hkey);rn rn else rn // if cannot add key or value, back out and failrn DllUnregisterServer();rn hr = SELFREG_E_CLASS;rn rn rn return hr;rnrnrnSTDAPI DllUnregisterServer(void)rn HRESULT hr = S_OK;rn int nEntries = sizeof(g_RegTable) / sizeof(*g_RegTable);rn for (int i = nEntries - 1; i >= 0; i--)rn const char *pszKeyName = g_RegTable[i][0];rn long err = RegDeleteKeyA(HKEY_CLASSES_ROOT, pszKeyName);rn if (err != ERROR_SUCCESS)rn hr = S_FALSE;rn rn return hr;rnrn[/code]rnrn其中Global.h就是定义了两个全局变量,一个是int类型的用作这个<em>组件</em>的内部运算。还有一个是HMODULE保存这个DLL的句柄rnrn项目生成了Fooo.dllrnrn我使用的是Windows 7-64rnrn管理员权限打开cmd,切换到C:\windows\syswow64,执行命令:rn[code=c]rnregsvr32 e:\FoooSln\Release\Fooo.dllrn[/code]rnrn提示我:rnrnDllRegisterServer in E:\FoooSln\Release\Fooo.dll succeeded.rnrn但是我去注册表查看HKEY_CLASSES_ROOT\CLSID却看不到我注册的信息(当然我搜索了一下注册表,还是没搜到)rnrn请问各位,这可能是什么<em>原因</em>导致注册不成功的?万分感谢!
COM组件调用问题!
要为网页做一个可<em>调用</em>的COM<em>组件</em>,要怎么做?rn我已经做了一个最简单的COM,但是在网页中怎么也<em>调用</em>不到接口函数,有什么是需要注意的么?
asp.net调用com组件
MATLAB提供actxserver函数把SPSS程序作为自动化服务器打开,而且在MATLAB中的命令窗口输入rnspss=actxserver('spss.application')rn运行结果为rnspss=COM.spss.application说明SPSS是一个COM对象rnrnrn仿照excel<em>调用</em>,代码如下:rnusing System;rnusing System.Reflection;rnusing System.Threading;rnrnnamespace ConsoleApplication1rnrn class Programrn rn static int Main(string[] args)rn rnrn Type spss;rn object[] parameter = new object[1];rn object spssObject;rn tryrn rn spss = Type.GetTypeFromProgID("spss.Application");rn spssObject = Activator.CreateInstance(spss);rn parameter[0] = true;rn spss.InvokeMember("Visible", BindingFlags.SetProperty, null, spssObject, parameter);rn rn catch (Exception e)rn rn Console.WriteLine("Error Stack 0", e.Message);rn rn finallyrn rn Thread.Sleep(5000);rn rn return 0;rn rn rn rnrnrn可是结果并不能象excel或者word一样成功<em>调用</em>,而是抛出异常"Error Stack 未知名称"rn试了下,好象是rnspss.InvokeMember("Visible", BindingFlags.SetProperty, null, spssObject, parameter);rn没有运行起来rn问题:(1)是这个函数的用法错了吗?但是换成Word或者Excel就正确的呀rn(2)希望顺便讲下InvokeMember怎么用rn(3)另怎么查看这个<em>com</em><em>组件</em>的可以<em>调用</em>的所有函数?
windows API 编程实现自由画图程序下载
学VC的时候做的小作业,可以拿来作为参考。 相关下载链接:[url=//download.csdn.net/download/lee_yucheng/2873590?utm_source=bbsseo]//download.csdn.net/download/lee_yucheng/2873590?utm_source=bbsseo[/url]
GTK编程资料(二合一)下载
GTK编程资料(二合一) Gtk+_Programming_in_C.pdf(英文版) GTK+_and_Glade3_GUI_Programming_Tutorial--中文系列.pdf 相关下载链接:[url=//download.csdn.net/download/mayadong7349/3276907?utm_source=bbsseo]//download.csdn.net/download/mayadong7349/3276907?utm_source=bbsseo[/url]
dreamweaver 基础教程.doc下载
对dreamweaver界面以及操作进行简单的介绍,有利于初学者学习和了解dreamweaver。 相关下载链接:[url=//download.csdn.net/download/enpain/4239808?utm_source=bbsseo]//download.csdn.net/download/enpain/4239808?utm_source=bbsseo[/url]
相关热词 c# 去空格去转义符 c#用户登录窗体代码 c# 流 c# linux 可视化 c# mvc 返回图片 c# 像素空间 c# 日期 最后一天 c#字典序排序 c# 截屏取色 c#中的哪些属于托管机制
我们是很有底线的