From 22f221752d1bdbfd9b88f1dca3733bb23353f04b Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 4 Dec 2019 15:41:41 -0300 Subject: [PATCH] Working on windows package. --- setup.py | 4 ++-- src/module/init.c | 4 ++-- src/module/properties.cc | 5 ++++- src/module/windows/init.cc | 22 ++++++++++++++++------ 4 files changed, 24 insertions(+), 11 deletions(-) diff --git a/setup.py b/setup.py index 54a3e4e..49b87b3 100644 --- a/setup.py +++ b/setup.py @@ -11,8 +11,8 @@ if platform.system() == 'Windows': tn3270 = Extension( 'tn3270', define_macros = [ - ('PACKAGE_NAME', '\"python3-tn3270\"'), - ('PACKAGE_VERSION', '\"5.2\"') + ('TN3270_MODULE_NAME', 'python3-tn3270'), + ('TN3270_MODULE_VERSION', '5.2') ], include_dirs = include_dirs, libraries = ['ipc3270'], diff --git a/src/module/init.c b/src/module/init.c index ae4a6db..0cf12fc 100644 --- a/src/module/init.c +++ b/src/module/init.c @@ -41,14 +41,14 @@ static PyMethodDef methods[] = { "version", py3270_get_module_version, METH_NOARGS, - "Get " PACKAGE_NAME " version" + "Get package version" }, { "revision", py3270_get_module_revision, METH_NOARGS, - "Get " PACKAGE_NAME " revision" + "Get package revision" }, diff --git a/src/module/properties.cc b/src/module/properties.cc index 1a6d31f..d3bc41a 100644 --- a/src/module/properties.cc +++ b/src/module/properties.cc @@ -28,11 +28,14 @@ */ #include + #include /*---[ Implement ]----------------------------------------------------------------------------------*/ PyObject * py3270_get_module_version(PyObject *self, PyObject *args) { -#ifdef PACKAGE_VERSION +#if defined(TN3270_MODULE_VERSION) + return PyUnicode_FromString(LIB3270_STRINGIZE_VALUE_OF(TN3270_MODULE_VERSION)); +#elif defined(PACKAGE_VERSION) return PyUnicode_FromString(PACKAGE_VERSION); #else return PyUnicode_FromString(""); diff --git a/src/module/windows/init.cc b/src/module/windows/init.cc index f20bc54..faa731b 100644 --- a/src/module/windows/init.cc +++ b/src/module/windows/init.cc @@ -38,7 +38,7 @@ #include - #if defined(_WIN32) && defined(USING_STATIC_IPC3270) + #if defined(_WIN32) #include #include @@ -47,10 +47,15 @@ #include #include + #if defined(_MSC_VER) + #pragma comment(lib,"DelayImp.lib") + #pragma comment(lib,"Advapi32.lib") + #endif // _MSC_VER + extern "C" { - extern __declspec (dllexport) PfnDliHook __pfnDliNotifyHook2; - extern __declspec (dllexport) PfnDliHook __pfnDliFailureHook2; +// extern __declspec (dllexport) PfnDliHook __pfnDliNotifyHook2; +// extern __declspec (dllexport) PfnDliHook __pfnDliFailureHook2; FARPROC WINAPI py3270_delay_load_hook(unsigned reason, DelayLoadInfo * info); @@ -62,8 +67,13 @@ // https://docs.microsoft.com/en-us/cpp/build/reference/loading-all-imports-for-a-delay-loaded-dll?view=vs-2019 - PfnDliHook __pfnDliNotifyHook2 = py3270_delay_load_hook; - PfnDliHook __pfnDliFailureHook2 = py3270_delay_load_hook; + #if defined(_MSC_VER) + const PfnDliHook __pfnDliNotifyHook2 = py3270_delay_load_hook; + const PfnDliHook __pfnDliFailureHook2 = py3270_delay_load_hook; + #else + PfnDliHook __pfnDliNotifyHook2 = py3270_delay_load_hook; + PfnDliHook __pfnDliFailureHook2 = py3270_delay_load_hook; + #endif // _MSC_VER static HANDLE hModule = 0; static HANDLE hEventLog = 0; @@ -189,5 +199,5 @@ } - #endif // USING_STATIC_IPC3270 + #endif // _WIN32 -- libgit2 0.21.2