atlcom

    0熱度

    1回答

    使用VS2008嚮導使用ATL COM,我創建了一個服務(即不做任何事情目前比啓動和停止等) 我希望使用(進程外)COM對象 如果我添加一個#進口 「object.tlb」,然後重新編譯給人 錯誤C2812:#進口不支持使用/ clr:純和/ CLR:安全 更改屬性時要使用/ CLR (不純或安全),允許編譯,但安裝服務失敗「嘗試加載與鏈接地址信息無法覈實的可執行文件」 任何意見讚賞的 彼得

    2熱度

    1回答

    環境:VS2008,C++ ATL COM位,64位,Windows 7的 我試圖從舊的COM接口刪除的方法。我修改* .idl,修改關聯的* .h和* .cpp實現文件,並將其從主項目的.h文件中移除。我可以搜索整個項目的舊方法名稱 - 不顯示,並且編譯/鏈接正常。但是,如果我然後使用對象瀏覽器來查看編譯的DLL - dang方法仍然存在!如果我在.NET項目中'引用'該DLL - 顯示該方法。

    0熱度

    1回答

    COleVariant var(bstrString); var.ChangeType(VT_DATE); DATE date = var.date; 似乎沒有工作。任何想法將不勝感激。謝謝。

    0熱度

    1回答

    最好的辦法: 我這是怎麼創造C++中的計時器:一次下面的觸發回調 if (FALSE == CreateTimerQueueTimer(&m_hSampleStarvationTimer, m_hSampleStarvationTimerQueue, (WAITORTIMERCALLBACK)TsSampleStarvationTime

    0熱度

    1回答

    僅供參考我在COM \ ATL和Unicode初學者 我用我的代碼SafeArrayPutElement(safearray*,LONG,void*)和問題是... 這裏,功能工作正常,當我給第三個參數爲L"ItWorks" 即 SafeArrayPutElement(safearray*,LONG, L"ItWorks"); ,但如果我使用 wchar_t str; str = 'a';

    7熱度

    1回答

    我有一個32位COM服務器(及其源代碼) 該源生成服務器和一個32位代理存根。 (MIDL編譯器生成代理存根代碼。) 我想創建一個64位代理,以便64位程序可以與我的32位COM服務器通信。 如何將32位代理轉換爲與32位進程對話的64位代理? 我猜只是用/ D:_M_AMD64重新編譯是不夠的。

    0熱度

    1回答

    我有一個接口指針,指向坐在進程1中的COM對象。我想從另一個進程訪問同一個對象。我怎樣才能達到這個目的?由於地址空間不同,我相信直接傳遞指針將不起作用。我知道它涉及到編組/代理/存根的東西。但我不知道細節。 有人可以提供一些關於要遵循的步驟和要調用的函數的詳細說明嗎?非常感謝。我不是COM對象本身的設計者。我只是用它。

    3熱度

    1回答

    有沒有一種簡單的方法來創建自IDispatch的派生和可以傳遞到像這樣的API(這是C++)類:用於處理一個invoke pDOM2->attachEvent(CComBSTR("event"), new DispatchFunction); 我知道如何創建一個C++對象值得懷疑的是0,但手工實現所有IDispatch總是有點痛苦。我想知道ATL是否有一些標準的做法,因爲它很常見。

    0熱度

    2回答

    我正在MFC應用程序似乎是自動承諾〜160MB的虛擬內存。該應用通常在10-14MB的內存使用情況下運行,因此提交的內存水平似乎過高。另外,在VirtualAlloc被調用的代碼中沒有... COM & ATL也被使用。 在__tmainCRTStartup中的斷點可以到達之前,內存會顯示已提交進程啓動的實例。 該內存如何保留/提交? 在此先感謝!

    0熱度

    1回答

    我試圖建立在VC++ 2008的一個項目,它是給下面的錯誤: error C2664: 'HRESULT ATL::CComVariant::ReadFromStream (IStream *,VARTYPE,ATL::ClassesAllowedInStream,DWORD)' : cannot convert parameter 3 from 'const int' to 'ATL::Cl