From 598d4b10a7096da24dda0da0c9ff8d2a2cdccfeb Mon Sep 17 00:00:00 2001 From: weidai Date: Fri, 11 Jul 2003 19:46:28 +0000 Subject: [PATCH] fix for Unix --- trunk/c5/config.h | 2 ++ trunk/c5/dll.cpp | 8 ++++++++ trunk/c5/dll.h | 10 +++++----- trunk/c5/dlltest.cpp | 2 +- trunk/c5/test.cpp | 4 +--- 5 files changed, 17 insertions(+), 9 deletions(-) diff --git a/trunk/c5/config.h b/trunk/c5/config.h index 044ac21f..6b61a485 100644 --- a/trunk/c5/config.h +++ b/trunk/c5/config.h @@ -264,11 +264,13 @@ NAMESPACE_END #endif #define CRYPTOPP_API __stdcall +#define CRYPTOPP_CDECL _cdecl #else // CRYPTOPP_WIN32_AVAILABLE #define CRYPTOPP_DLL #define CRYPTOPP_API +#define CRYPTOPP_CDECL #endif // CRYPTOPP_WIN32_AVAILABLE diff --git a/trunk/c5/dll.cpp b/trunk/c5/dll.cpp index d8638a9b..63d54275 100644 --- a/trunk/c5/dll.cpp +++ b/trunk/c5/dll.cpp @@ -6,7 +6,9 @@ #include "dll.h" #pragma warning(default: 4660) +#ifdef CRYPTOPP_WIN32_AVAILABLE #include +#endif #include "iterhash.cpp" #include "strciphr.cpp" @@ -23,13 +25,19 @@ template<> const byte PKCS_DigestDecoration::decoration[] = {0x30,0x21,0x30 template<> const unsigned int PKCS_DigestDecoration::length = sizeof(PKCS_DigestDecoration::decoration); static const byte s_moduleMac[CryptoPP::HMAC::DIGESTSIZE] = "reserved for mac"; +#ifdef CRYPTOPP_WIN32_AVAILABLE static HMODULE s_hModule = NULL; +#endif void DoDllPowerUpSelfTest() { +#ifdef CRYPTOPP_WIN32_AVAILABLE char moduleFileName[MAX_PATH]; GetModuleFileNameA(s_hModule, moduleFileName, sizeof(moduleFileName)); CryptoPP::DoPowerUpSelfTest(moduleFileName, s_moduleMac); +#else + throw NotImplemented("DoDllPowerUpSelfTest() only available on Windows"); +#endif } NAMESPACE_END diff --git a/trunk/c5/dll.h b/trunk/c5/dll.h index 50ec948d..4bf44ee5 100644 --- a/trunk/c5/dll.h +++ b/trunk/c5/dll.h @@ -55,11 +55,11 @@ NAMESPACE_BEGIN(CryptoPP) using std::new_handler; #endif -typedef void * (_cdecl * PNew)(size_t); -typedef void (_cdecl * PDelete)(void *); -typedef void (_cdecl * PGetNewAndDelete)(PNew &, PDelete &); -typedef new_handler (_cdecl * PSetNewHandler)(new_handler); -typedef void (_cdecl * PSetNewAndDelete)(PNew, PDelete, PSetNewHandler); +typedef void * (CRYPTOPP_CDECL * PNew)(size_t); +typedef void (CRYPTOPP_CDECL * PDelete)(void *); +typedef void (CRYPTOPP_CDECL * PGetNewAndDelete)(PNew &, PDelete &); +typedef new_handler (CRYPTOPP_CDECL * PSetNewHandler)(new_handler); +typedef void (CRYPTOPP_CDECL * PSetNewAndDelete)(PNew, PDelete, PSetNewHandler); CRYPTOPP_DLL void DoDllPowerUpSelfTest(); diff --git a/trunk/c5/dlltest.cpp b/trunk/c5/dlltest.cpp index c74cbe7b..5a49513d 100644 --- a/trunk/c5/dlltest.cpp +++ b/trunk/c5/dlltest.cpp @@ -173,7 +173,7 @@ void FIPS140_SampleApplication() #ifdef CRYPTOPP_DLL_ONLY -int __cdecl main() +int CRYPTOPP_CDECL main() { FIPS140_SampleApplication(); return 0; diff --git a/trunk/c5/test.cpp b/trunk/c5/test.cpp index 39699e0a..de7fdaf0 100644 --- a/trunk/c5/test.cpp +++ b/trunk/c5/test.cpp @@ -85,10 +85,8 @@ int (*AdhocTest)(int argc, char *argv[]) = NULL; #ifdef __BCPLUSPLUS__ int cmain(int argc, char *argv[]) -#elif defined(_MSC_VER) -int __cdecl main(int argc, char *argv[]) #else -int main(int argc, char *argv[]) +int CRYPTOPP_CDECL main(int argc, char *argv[]) #endif { #ifdef _CRTDBG_LEAK_CHECK_DF