Я хочу импортировать класс в dll. Моя dll:
#ifndef MyDLL_EXPORTS
#define MyDLL_EXPORT __declspec(dllexport)
#else
#define MyDLL_EXPORT __declspec(dllimport)
#endif
class MyDLL_EXPORT arithmetic_operation
{
public:
double add(double a, double b);
};
double arithmetic_operation::add(double a, double b)
{
return a + b;
}
Я могу вызвать эту dll в Visual Studio. Затем я хочу позвонить в класс python. После поиска метода из inte rnet, ctypes может быть решением. Тем не менее, я все еще не могу решить эту проблему.
Во-первых, я использую lib = cdll.LoadLibrary('MyDLL.dll')
, и сообщается об ошибке:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "D:\Anaconda3\envs\general\lib\ctypes\__init__.py", line 442, in LoadLibrary
return self._dlltype(name)
File "D:\Anaconda3\envs\general\lib\ctypes\__init__.py", line 364, in __init__
self._handle = _dlopen(self._name, mode)
OSError: [WinError 193] %1 is not a valid win32 application.
Кроме того, я попытался lib = windll.LoadLibrary('MyDLL.dll')
, и это сообщить об этой же ошибке:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "D:\Anaconda3\envs\general\lib\ctypes\__init__.py", line 442, in LoadLibrary
return self._dlltype(name)
File "D:\Anaconda3\envs\general\lib\ctypes\__init__.py", line 364, in __init__
self._handle = _dlopen(self._name, mode)
OSError: [WinError 193] %1 is not a valid win32 application.
Среда:
win 10, 64 bit
VS 2015 64 bit: configuration Release/Debug x64
python 3.7.5 (default. Oct 31 2019, 15:18:51) [MSV v.1916 64 bit (AMD64)]::Anaconda, Inc. on win32