stdcall

    1熱度

    1回答

    我目前正在開發一個涉及創建一些DLL庫的項目,這些DLL庫將被髮送給客戶。該DLL導出一些函數,所有導出的函數使用__stdcall調用約定。該庫還包含一些不導出但被導出的函數使用的函數。是否有必要關心這些地方功能的調用約定?我可以將本地功能的調用約定保留爲默認值嗎?

    0熱度

    2回答

    在這個偉大的平臺上閱讀和學習多年後,現在是我的第一篇文章。 我的問題: 在C++中,我試圖創建一個動態鏈接庫(32位),將作爲一個AQMP通信客戶端(基於SimpleAmqpClient)。該dll文件將在第三方應用程序(32位)中使用。 在我的測試中,我在自定義可執行文件中調用dll時,一切正常。但是,當我嘗試在第三方應用程序中使用DLL時,出現訪問衝突錯誤(0x00000000)。我發現問題可

    3熱度

    1回答

    我一直在尋找像這裏提到的一些代碼:Function pointers for winapi functions (stdcall/cdecl),Function pointer and calling convention等 有什麼需要,利益宣告一個函數指針作爲__stdcall的呼叫類型? 爲什麼要聲明函數指針的調用類型?

    1熱度

    1回答

    我有這樣的代碼: void GetResult(WINUSB_INTERFACE_HANDLE InterfaceHandle, LPOVERLAPPED lpOverlapped) { DWORD numBytes = 0; WinUsb_GetOverlappedResult( InterfaceHandle, lpOverlapped,

    1熱度

    1回答

    我創建了一個DLL文件,其中包括兩個空函數。 extern "C" __declspec(dllexport) void __stdcall myFunc1() { // just empty function } extern "C" __declspec(dllexport) void __cdecl myFunc2() { // just empty functio

    2熱度

    1回答

    道歉,如果這個問題有點不專心。我正在使用COM,在Windows 10下使用Visual Studio 2015社區編寫一些簡單的COM服務器和對象。所有COM對象都必須實現IUnknown接口。 VS2015的IDE將提供實現超類的虛擬功能。所以,如果我創建「example.h文件」與這些內容: #include <Unknwn.h> class MyClass : public IUnkn

    0熱度

    1回答

    問題是在不存在請求的功能的舊機器上運行代碼。爲了檢查它,使用LoadLibrary和GetProcAddress,如here所示,但GetProcAddress要求在使用之前在TypeDef中的功能的地址。 例如,以這兩個上例如,Windows XP SP2 32位: typedef BOOL (__stdcall *LPFN_Wow64RevertWow64FsRedirection) (PVO

    0熱度

    1回答

    我正在努力培養對彙編語言的理解。我明白,當函數創建堆棧幀時,它會將當前的EBP推向棧頂指針值EBP。第一個(也是唯一的)功能參數由EBP + 8訪問。但爲什麼8?推後EBP的下一個值在邏輯上偏移4.我讀了很多網頁,但似乎我不明白這一部分。

    3熱度

    2回答

    我正在爲一個項目生成一個用於離線測試的虛擬DLL。我們有真正的DLL和它的頭文件,雖然它們看起來不兼容。在DLL的名稱是未重整但功能的前置聲明聲明被召喚出來爲__stdcall: example.h文件 DWORD __stdcall DoSomething(byte aByte); example.dll中的Dependency Walker: 2 (0x0002) 2 (0x0002) D

    1熱度

    1回答

    有誰知道爲什麼這不起作用? void test() [[stdcall]] { std::cout << "Hello World" << std::endl; } 當我嘗試用C++ 11的方言,它說編譯: 「警告: 'STDCALL' 屬性指令被忽略[-Wattributes]」 這是爲什麼?我有一個真正需要stdcall調用約定的函數。 GCC中的默認調用約定是cdecl。有