4211|7

74

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

sqlce相关问题 [复制链接]

已经用dllregister.exe在wince5.0下注册了ssce20.dll,ssceca20.dll,ssceerroren.dll,adoce31.dll,adoceoledb31.dll,adoxce31.dll

HRESULT hr = CoCreateInstance(CLSID_RemoteDataAccess, NULL, CLSCTX_INPROC_SERVER, IID_ISSCERDA, (LPVOID *)&pCERDA);
返回值为假,请问还有什么要满足的条件没有,谢谢

欢迎帮顶,谢谢

最新回复

if ( SUCCEEDED( CoInitialize(NULL) ) ) { // 如果成功初始化COM库,则继续初始化并运行应用程序... // 对于Win32应用程序, CoInitialize函数的pvReserved参数,必须为NULL. 此参数不能被用于32位COM, // CoInitialize将会返回E_INVALIDARG,如果传递一个非NULL参数. } else { // 如果初始化COM库失败,则退出. } HRESULT hr; IComObject *pRet; hr = CoCreateInstance(CLSID_OFCOM,NULL,CLSCTX_INPROC_SERVER,IID_OFCOMOBJECT, (PPVOID)&pRet); if (SUCCEEDED(hr)) { // 卸载不用的COM服务. CoFreeUnusedLibraries(); } else ... ... pRet->Release(); CoUninitialize(); 复制代码  详情 回复 发表于 2009-4-17 12:59
点赞 关注

回复
举报

72

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
你定制的系统中包含了sqlce了吗。
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
引用 1 楼 yashi 的回复:
你定制的系统中包含了sqlce了吗。

定制的系统里面没有包含sqlce,我是按照evc高级编程及其应用开发这本书的第8章的例子的,感谢您的回答
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

4
 
LZ去看看hr 的具体值是多少,然后去一个.h文件中查找相应的原因
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

5
 
函数功能描述:用指定的类标识符创建一个Com对象,用指定的类标识符创建一个未初始化的对象。当在本机中只创建一个对象时,可以调用 CoCreateInstance;在远程系统中创建一个对象时,可以调用CoCreateInstanceEx;创建多个同一CLSID的对象时, 可以参考 CoGetClassObject 函数。
函数原形:
STDAPI CoCreateInstance(
REFCLSID rclsid, //创建的Com对象的类标识符(CLSID)
LPUNKNOWN pUnkOuter, //指向接口IUnknown的指针
DWORD dwClsContext, //运行可执行代码的上下文
REFIID riid, //创建的Com对象的接口标识符
LPVOID * ppv //用来接收指向Com对象接口地址的指针变量
);
参数:
rclsid
[in] 用来唯一标识一个对象的CLSID(128位),需要用它来创建指定对象。
pUnkOuter
[in] 如果为NULL, 表明此对象不是聚合式对象一部分。如果不是NULL, 则指针指向一个聚合式对象的IUnknown接口。
dwClsContext
[in] 组件类别. 可使用CLSCTX枚举器中预定义的值.
riid
[in] 引用接口标识符,用来与对象通信。
ppv
[out] 用来接收指向接口地址的指针变量。如果函数调用成功,*ppv包括请求的接口指针。
返回值:
S_OK
指定的Com对象实例被成功创建。
REGDB_E_CLASSNOTREG
指定的类没有在注册表中注册. 也可能是指定的dwClsContext没有注册或注册表中的服务器类型损坏
CLASS_E_NOAGGREGATION
这个类不能创建为聚合型。
E_NOINTERFACE
指定的类没有实现请求的接口, 或者是IUnknown接口没有暴露请求的接口.
注释:
CoCreateInstance帮助者函数通过使用对象的CLSID,提供了一种便洁的方式与类对象连接,创建未初始化的实例,以及释放类对象。它封装了以下的功能:
CoGetClassObject(rclsid, dwClsContext, NULL, IID_IClassFactory, &pCF);
hresult = pCF->CreateInstance(pUnkOuter, riid, ppvObj);
pCF->Release();
当在本机中只创建一个对象时,调用CoCreateInstance是最方便的;如果要在远程系统中创建一个对象时,可以调用 CoCreateInstanceEx;创建多个同一CLSID的对象时, 可以参考 CoGetClassObject 函数;如果创建多个对象实例,可以获得类对象的IClassFactory 接口指针,并使用需要的方法,可以使用CoGetClassObject函数。
在CLSCTX枚举器中, 你可以指定用来管理对象的服务器类型. 这些常量可以是CLSCTX_INPROC_SERVER, CLSCTX_INPROC_HANDLER, CLSCTX_LOCAL_SERVER或是它们的任何组合. 常量CLSCTX_ALL被定义为这三个值的组合. 想获得更多的有关这些常量的用法,请参考CLSCTX.
实例:
if ( SUCCEEDED( CoInitialize(NULL) ) )
{
// 如果成功初始化COM库,则继续初始化并运行应用程序...
// 对于Win32应用程序, CoInitialize函数的pvReserved参数,必须为NULL. 此参数不能被用于32位COM,
// CoInitialize将会返回E_INVALIDARG,如果传递一个非NULL参数.
}
else
{
// 如果初始化COM库失败,则退出.
}
HRESULT hr;
IComObject *pRet;
hr = CoCreateInstance(CLSID_OFCOM,NULL,CLSCTX_INPROC_SERVER,IID_OFCOMOBJECT,
(PPVOID)&pRet);
if (SUCCEEDED(hr))
{
// 卸载不用的COM服务.
CoFreeUnusedLibraries();
}
else
...
...
pRet->Release();
CoUninitialize();

要求:
Windows NT/2000: 需要 Windows NT 3.1 或以后版本。
Windows 95/98: 需要 Windows 95 或以后版本。
头文件 : objbase.h.
库文件 : ole32.dll.
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用 3 楼 91program 的回复:
LZ去看看hr 的具体值是多少,然后去一个.h文件中查找相应的原因

感谢您的回答
返回的是-2147221008,网上查了下资料好像跟尚未调用 CoInitialize有关。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

7
 
那就先初始化CoInitialize()
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

8
 

  1. if ( SUCCEEDED( CoInitialize(NULL) ) )
  2. {
  3. // 如果成功初始化COM库,则继续初始化并运行应用程序...
  4. // 对于Win32应用程序, CoInitialize函数的pvReserved参数,必须为NULL. 此参数不能被用于32位COM,
  5. // CoInitialize将会返回E_INVALIDARG,如果传递一个非NULL参数.
  6. }
  7. else
  8. {
  9. // 如果初始化COM库失败,则退出.
  10. }
  11. HRESULT hr;
  12. IComObject *pRet;
  13. hr = CoCreateInstance(CLSID_OFCOM,NULL,CLSCTX_INPROC_SERVER,IID_OFCOMOBJECT,
  14. (PPVOID)&pRet);
  15. if (SUCCEEDED(hr))
  16. {
  17. // 卸载不用的COM服务.
  18. CoFreeUnusedLibraries();
  19. }
  20. else
  21. ...
  22. ...
  23. pRet->Release();
  24. CoUninitialize();
复制代码
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表