2012-12-14 60 views
0

我試圖讓我的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++

感謝,

吉姆

+0

EventHandler中的C++代碼是:'code' _Module.UpdateRegistryFromResource(IDR_EVENTHANDLER,TRUE); _Module.RegisterServer(FALSE); AfxMessageBox(「已註冊COM回調。\ n \ n如果QuickBooks當前正在運行,請重新啓動以獲取新的註冊。」); – Jim

回答

3

這可能不是直接描述你的情況,但概念是相似的。從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。一旦所有的註冊和配置完成,它應該像普通用戶一樣工作。

+0

我曾考慮過,但認爲由於我的Windows 7機器上有唯一的用戶帳戶,因此我是管理員。我確信我在Windows XP上擁有系統管理權限,所以這很有道理。我會嘗試....謝謝! – Jim