I found this blog post, Simple Python ctypes Example, on Reddit, and thought I’d see how different the procedure was for Windows.
What you’ll need:
- Visual C# 2008 Express Edition (Visual Studio 2008 will also work – and is what I used, but will again base this on free downloads)
- Python 2.5 or higher (I used Python 2.6.2)
Creating the DLL
Create a file dlltest.c with the following content:
1 2 3 4 5 6 7 8 9 10 11 12 | #include <windows.h> BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) { return TRUE; } __declspec(dllexport) int multiply(int num1, int num2) { return num1 * num2; } |
Start the Visual Studio 2008 Command Prompt from the Start Menu (this sets up the path for the compiler and other files, which makes things easier) and go to the directory you saved dlltest.c to.
Compile it with the following command:
cl -LD dlltest.c -Fetest.dll
Testing the DLL
As in the original Linux example, this DLL is easily tested using similar commands:
1 2 3 4 | >>> from ctypes import * >>> libtest = cdll.LoadLibrary('test.dll') >>> print libtest.multiply(2, 2) 4 |
So, that is the simplest DLL possible, I’ll look at (same as the original blog post) applying it to more complex examples later.
Recent Comments