VC 6.0COM DLL创建步骤:
-------------------------------------------------
1、通过向导建立 ATL 工程(DLL),工程名 :OCRCOM
2、通过向导建立Simple Object,输入的名称为: Fun
3、通过向导向 IFun 添加一个方法 GetText([in] BSTR s1, [out] BSTR *s2);
4、实现 GetText 函数;
5、编译通过 并 regsvr32 命令注册成功
-------------------------------------------------使用:
1、通过向导建立MFC工程COMTest;
2、通过向导 ClassWizard,执行 Add Class,选择 From a type library(选择OCRCOM.DLL),自动生成IFun类;
3、实现调用函数void CCOMTestDlg::OnButton1()
{
IFun spDisp; // 包装类的对象
spDisp.CreateDispatch( _T("OCRCOM.Fun.1") ); //启动组件
char *chText = "D:\\PIC\\1.bmp"; BSTR *pbstrText; spDisp.GetText(chText, pbstrText); // 调用函数 (感觉根本没有调用到) spDisp.ReleaseDispatch(); // 释放接口 return ;
}4、编译通过帮我看看有什么遗漏步骤,感觉GetText接口更本没有(用depends工具没有在OCRCOM.DLL看到GetText函数)
-------------------------------------------------
1、通过向导建立 ATL 工程(DLL),工程名 :OCRCOM
2、通过向导建立Simple Object,输入的名称为: Fun
3、通过向导向 IFun 添加一个方法 GetText([in] BSTR s1, [out] BSTR *s2);
4、实现 GetText 函数;
5、编译通过 并 regsvr32 命令注册成功
-------------------------------------------------使用:
1、通过向导建立MFC工程COMTest;
2、通过向导 ClassWizard,执行 Add Class,选择 From a type library(选择OCRCOM.DLL),自动生成IFun类;
3、实现调用函数void CCOMTestDlg::OnButton1()
{
IFun spDisp; // 包装类的对象
spDisp.CreateDispatch( _T("OCRCOM.Fun.1") ); //启动组件
char *chText = "D:\\PIC\\1.bmp"; BSTR *pbstrText; spDisp.GetText(chText, pbstrText); // 调用函数 (感觉根本没有调用到) spDisp.ReleaseDispatch(); // 释放接口 return ;
}4、编译通过帮我看看有什么遗漏步骤,感觉GetText接口更本没有(用depends工具没有在OCRCOM.DLL看到GetText函数)
解决方案 »
- 在vs2008下写得多文档程序,如何改变主窗口背景图片
- 大家进来看下,对话框上控件随窗体大小变化而变化的怪异现象?
- 微软公布中国十大流氓软件
- 读数据库怎么这么耗内存?
- 谁知道怎么用程序来"停用"或"启动"设备管理器里面的设备???
- 我在WIN2000高级服务器版下装了VC++6.0但系统老是报错,说内存一段地址只能为Read
- 怎样制作出象VB的工具箱那样的东东
- DLL
- 请问大家知道那里有流程图制作软件(好像叫Visio)的软件下载吗?我找得好苦啊!
- 请各位大虾告诉小弟学习VC的方法及经验!!
- 请问在VC6中如何查询、停止和启动某个服务?如何查询、修改本机的网络参数?
- 为什么用SetMenu在风格为WS_CHILD的对话框上创建菜单不行呢?有办法没?
com 怎么调试?
不能单步调试吗?看看函数的返回值
我进不去,
这个DLL文件我注册过多次(不同目录的且一开始的DLL有错),是否导致了不能调试?COM DLL要放在系统目录下吗?感谢上面各位
调试中使用EXE进程取得,然后会进入COM DLL工程的代码中。
BSTR pbstrText;//或 BSTR *pbstrText
spDisp.GetText(strName.c_str(), &pbstrText);
-----------------------------------------------
系统自动生成的代码会检查 BSTR 参数,为空就直接返回了BSTR pbstrText 用来返回字符串
这个我到底该怎么写?是COM接口自己分配空间还是调用者来分配?