visual实现COM接口c++ / vc++ 6.0 / MFC
visual Implement COM interface C++ / VC++ 6.0 / MFC
试图实现COM接口的入门级程序员。我正在开发一个与阿罗哈销售点系统相连接的程序。Aloha使用COM与外部程序一起工作。我正试图从磁卡读卡器拦截卡数据,这是一个OPOS读卡器,而不是键盘楔子。我的文档没有解释如何实现这个特定的接口,但是它解释了如何实现一个类似的接口。我曾试图效仿这个例子,但我一无所获。Aloha的支持是不存在的,他们的文档很差,过时,有时甚至是错误的,即使我已经支付了许可证。
我试着做一个简单的应用程序只是为了测试这个功能。以下是我所做的:
1)在vc++ 6.0中使用atlcom应用向导创建一个新项目2)服务器型DLL3)插入新的atl对象->简单对象4)右键单击我的新类,选择实现接口5)浏览类型库,选择Iber。tlb(阿罗哈的tlb)6)选择我要实现的接口
生成。h,。cpp和。rgs文件。
.h文件有:
public:
// IInterceptMagcard
STDMETHOD(InterceptMagcard)(BSTR bstrAccountNumber, BSTR bstrCustomerName, BSTR bstrExpirationDate, BSTR bstrTrack1Info, BSTR bstrTrack2Info, BSTR bstrTrack3Info, BSTR bstrRawMagcardData, LONG * bWasDataHandled)
{
if (bWasDataHandled == NULL)
return E_POINTER;
return E_NOTIMPL;
}
是我在哪里实现我的代码?我在里面放了一些测试代码,然后写入一个txt文件来测试它。然后我使用:
HRESULT hr = CoCreateInstance(CLSID_AlohaMag, NULL, CLSCTX_INPROC_SERVER,
IID_IAlohaMag, (void **) &g_pIInterceptMagcard);
其中g_pIInterceptMagcard是一个指针,指向我用上面的向导创建的接口类
当我尝试注册时,我得到以下HRESULT: 0x80040112这是"未被许可使用的类"。
这是否意味着我的程序没有创建必要的注册表项?
这可能意味着在自定义类工厂创建类的实例之前,您必须安装许可证。您是否尝试在一个完全工作的POS系统上运行您的程序,并允许使用磁卡刷卡?也许你需要一些其他的许可证来做这种事情?
如果是类未注册的问题,结果将是"类未注册"。听起来您已经通过向导完成了必要的步骤来实现接口,并让它生成正确的注册表项。
相关文章:
- C++ MFC Libraries in Travis CI
- 参考资源文件VC++中的$(SolutionDir)
- VC++本机单元测试,找不到调试符号
- 从 bmp 文件数据创建 MFC CBitmap
- 如何在 MFC 中显示文件的所有行
- 为什么VC++/MFC没有main函数?
- 在swig.i文件中,如何为基于mfc的第三方dll解析ms-windows-vc++typedef类型
- 在 VC++ MFC 中创建另一个鼠标光标
- 旧版 MFC 代码 (2005) 无法在 VC 2010 上编译
- 刷新MFC接口VC++2010
- 无法理解普通 c++ 与 vc++、win32 编程、mfc、win32 api、CLI 之间的关系
- VC++:如何在MFC对话框的属性表顶部显示控件
- 主机Windows窗体(c#)内部MFC应用程序(vc++,VS6.0)
- visual实现COM接口c++ / vc++ 6.0 / MFC
- 无法在vc++mfc应用程序中分配1.5GB内存
- vc++ mfc 中的串行编程存在一些问题
- 在 Visual Studio 中使用清单文件指定正确的 VS 2012 VC/MFC 运行时
- 在 VC++ MFC 中使用静态变量时出现问题
- 单元测试vc++ MFC应用程序使用CPPUNIT或GTEST
- 我已经将CLIPS与VC++(MFC)集成在一起,为什么有些函数无法执行,例如"strcmp"