Как загрузить и получить доступ к заголовку C / C ++ в Python

Я пытаюсь взаимодействовать с программным обеспечением динамического моделирования (Vensim) с Python. В программном обеспечении есть файл заголовка vendll.h, который я хотел бы использовать.

Я искал модуль ctypes для этого, но ничего не нашел. Я также хотел бы избежать использования Cython, но я посмотрю, как это происходит. Вот пример файла, поставляемого с программным обеспечением, о том, как использовать этот файл в Matlab. Вы, вероятно, получите суть того, что я хочу, чтобы быть в состоянии воспроизвести в Python более или менее.

clear all
%*********************LOAD THE MODEL *************************

if not(libisloaded('VenDLL32'))
hfile = ['C:\Users\Public\Vensim\dll\vendll.h'];
loadlibrary('VenDLL32',hfile);
end

% Display Vensim DDL function calls and signatures
libfunctionsview VenDLL32

%% *********************EXECUTE SIMULATION *************************
% check calllib returns to verify initiation

str=['SPECIAL>LOADMODEL|RABFOX.vpm'];
calllib('VenDLL32','vensim_check_status')
calllib('VenDLL32','vensim_command',str)
str=['MENU>RUN|o'];
calllib('VenDLL32','vensim_command',str)%% *********************RETRIEVE DATA *************************
% retrieve data from the post simulation execution

tnum = 201;
timepts = int32(tnum);

mytime = zeros(1,tnum);
mytimePtr1 = libpointer('singlePtr', mytime);

myrabpop = zeros(1,tnum);
myrabpopPtr1 = libpointer('singlePtr', myrabpop);

% vensim get data command
[int32_status, cstring_vdf, cstring_var1, cstring_var2, singlePtr_var1, ...
singlePtr_var2] = calllib('VenDLL32','vensim_get_data','CURRENT.vdf', ...
'Rabbit Population','time',myrabpopPtr1(1),mytimePtr1(1),timepts);

myrabpopPtr1(1).Value'
mytimePtr1(1).Value'

%% ******************** UNLOAD VENSIM DLL ********************
% unload the library

unloadlibrary VenDLL32

В Matlab все выглядит просто, так что в Python должен быть кусок пирога, верно?

Как я могу загрузить файл заголовка и получить доступ к его содержимому через python?

Существует также эквивалентный файл статической библиотеки ссылок (.lib) (я не вижу .dll) с именем vendll32.lib. Есть ли способ использовать этот файл аналогичным образом, если я не могу использовать заголовочный файл?

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]