هل استطيع إستيراد دوال من ملف Dll واستعمالها ؟
#4
اذن البرامتر عادية .. اذن لا مشكلة
استعمل الدالة LoadLibrary لتحميل المكتبة Python.dll , ثم الدالة GetProcAddress وتمرير اسم الدالة وانتهينا ..
أعتقد ان استعمالها سيكون بهذا الشكل -مع افتراض أن Delphi File = Cpp File type
PHP كود :
type PyRun_SimpleFileType = function(var f: file; s: PChar): boolean; stdcall;

var 
myFile: file;
  
hLib: THandle;
  
SimpleFile, Py_Initialize, Py_Finalize: FARPROC;
  
PyRun_SimpleFile: PyRun_SimpleFileType;
const 
a2l_reader: string = 'a2l_reader.py';
begin
  PyRun_SimpleFile 
:= nil;

  
AssignFile(myFile, 'some file');
  
ReWrite(myFile);
  
hLib := LoadLibrary(PChar('python22.dll'));
  
Py_Initialize := GetProcAddress(hLib, 'Py_Initialize');
  
asm
  pushad
  call Py_Initialize
  popad
  end
;
  
PyRun_SimpleFile := GetProcAddress(hLib, 'PyRun_SimpleFile');
  if 
not Assigned(PyRun_SimpleFile) then
    raise Exception
.Create('Error ..');
  
PyRun_SimpleFile(myfile, 'a2l_reader.py');
  
Py_Finalize := GetProcAddress(hLib, 'Py_Finalize');
  
asm
  pushad
  call Py_Finalize
  popad
  end
;
  
CloseFile(myFile);
  
FreeLibrary(hLib);
end; 
------------------------------------------------
مجرد فضول .. لماذا تلجأ الى كل هذه التعقيدات !!! .. ودلفي تتيح لك كل ما يلزم للتعامل مع الملفات !!!
الرد


الردود في هذا الموضوع
هل استطيع إستيراد دوال من ملف Dll واستعمالها ؟ - بواسطة SMP3 - 31-03-2013, 09:34 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم