我先把问题简要说明一下:
本工程是一个简单的com例子。来自于英和梁刚编写的《Visual C++实践与提高-com和com+篇》,对应其中的dbalmostcom文件-包含三个文件夹。
CLIENT:接口文件。一个简单的头文件
OBJECT:对象文件。对象的实现,生成一个dll文件。
CLIENT:客户文件。通过类似com的方式来调用dll。
运行时dll要先注册:
1, 打开HKEY_CLASSES_ROOT\CLSID
2, 添加一个子键,名称为{30DF3430-0266-11cf-BAA6-00AA003E0EED}(程序中这样指定的)
3, 为该新子键添加一个未命名的值:Data Type为REG_SZ,值为DB Sample Object(任意)
4, 为新子键再添加一个子键:InprocServer32。为它添加一个未命名的值:Data Type=REG_SZ,String = <path>\db.dll,<path>为dll所在路径
这个程序调试了三天了,怎么跟踪都不行。错误提示说传入了一个无效指针,但是我怎么也找不到哪里无效。问题是出在:CoGetClassObject函数。如果哪位高手有兴趣的话,我把源码发过去。希望得到帮助。
本工程是一个简单的com例子。来自于英和梁刚编写的《Visual C++实践与提高-com和com+篇》,对应其中的dbalmostcom文件-包含三个文件夹。
CLIENT:接口文件。一个简单的头文件
OBJECT:对象文件。对象的实现,生成一个dll文件。
CLIENT:客户文件。通过类似com的方式来调用dll。
运行时dll要先注册:
1, 打开HKEY_CLASSES_ROOT\CLSID
2, 添加一个子键,名称为{30DF3430-0266-11cf-BAA6-00AA003E0EED}(程序中这样指定的)
3, 为该新子键添加一个未命名的值:Data Type为REG_SZ,值为DB Sample Object(任意)
4, 为新子键再添加一个子键:InprocServer32。为它添加一个未命名的值:Data Type=REG_SZ,String = <path>\db.dll,<path>为dll所在路径
这个程序调试了三天了,怎么跟踪都不行。错误提示说传入了一个无效指针,但是我怎么也找不到哪里无效。问题是出在:CoGetClassObject函数。如果哪位高手有兴趣的话,我把源码发过去。希望得到帮助。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货