我只是想創建一個簡單的DLL,使用VC++(VS2015)的單個導出函數,並從Win32應用程序中調用此函數。我正在測試在x86和x64構建配置中構建dll和exe文件。vC++ 64位DLL不正確的參數大小
當編譯爲x86時,一切都按預期工作,但是當我編譯爲x64並進入dll函數調用時,函數參數都是垃圾數據。
我具備的功能定義爲包含在DLL和應用程序項目既是一個頭文件如下:
#ifdef CPPDLL_EXPORTS
#define CPPDLL_API __declspec(dllexport)
#else
#define CPPDLL_API __declspec(dllimport)
#endif
extern "C" CPPDLL_API void __cdecl CallDll(LONG64 value, bool trueOrFalse);
功能請問這是怎麼在DLL中實現:
extern "C" CPPDLL_API void __cdecl CallDll(LONG64 value, bool trueOrFalse)
{
return;
}
這是功能如何在應用程序中調用:
CallDll(12345, true);
更改第從LONG64到像int這樣的東西沒有區別。我毫不懷疑這是一個愚蠢的錯誤,但我一直在試圖弄清楚自己的頭髮。
整個樣本項目: https://1drv.ms/u/s!AiwVLuwdzWP_zZ0tSDA15ZqL9QgKXQ
請提供[MCVE(http://stackoverflow.com/help/mcve) – NineBerry
增加了整個項目MCVE它 – user7101086
工作爲我好後,我改變了包括路徑找到Header.h 它沒有開始騙我通過改變它實際構建的不同構建配置的屬性(該平臺是錯誤的,我正在構建x64,它正在改變Win32。 –