Windows 7中的QBSDK(QuickBooks)
我试图让我的Windows 7机器上运行QBSDK。我正在尝试运行名为EventHandler的示例程序。它与示例EventSubscribe一起运行。我在Visual Studio 2008中编译了这些代码。EventHandler在文件菜单中有一个名为Register Call Back Interface的选项。当我运行它时,表明已经创建了COM连接,但是当我尝试订阅EventSubscribe示例程序中的事件时,它给了我错误“回调应用程序无法从订阅请求中提供的CLSID或ProgID中找到。“Windows 7中的QBSDK(QuickBooks)
在我注册回调接口后,在我的Windows 7机器上,我注意到Unregister命令没有突出显示。我还在一台装有Visual Studio 2008的Windows XP机器上编译了这个,我注意到Unregister被突出显示。虽然我没有Windows XP机器上的Quickbooks。
我已经尝试了很多事情来得到这个工作......任何想法发生了什么?
我使用C++
感谢,
吉姆
这可能不是直接描述你的情况,但概念是相似的。从Vista开始,QuickBooks SDK(以及其他基于COM的技术)出现了很多解决方法,由于Windows UAC限制,需要“以管理员身份运行”才能进行配置。
从SDK文档:
After you subscribe your menu extension events and
register them as documented, you need to run QB
using "Run As Administrator." This only has to be
done ONCE, after running QB as admin once, your
menu items will continue to show up and menu
events will be received by your event handler without
running QB as admin.
总的原则是,即使你是一个管理帐户下运行Windows,则可能需要“以管理员身份运行”既QuickBooks的UI,并且您的应用程序在配置过程中使用QBSDK。一旦所有的注册和配置完成,它应该像普通用户一样工作。
我曾考虑过,但认为由于我的Windows 7机器上有唯一的用户帐户,因此我是管理员。我确信我在Windows XP上拥有系统管理权限,所以这很有道理。我会尝试....谢谢! – Jim
EventHandler中的C++代码是:'code' _Module.UpdateRegistryFromResource(IDR_EVENTHANDLER,TRUE); _Module.RegisterServer(FALSE); AfxMessageBox(“已注册COM回调。\ n \ n如果QuickBooks当前正在运行,请重新启动以获取新的注册。”); – Jim