2014-09-24 6 views
-4

Для проекта мне нужно импортировать DLL, созданную в Delphi, и вызвать некоторые функции. Однако никто в проекте не знает, как это сделать. Наш руководитель компании сделал программу на C++, чтобы открыть DLL и вызвать функции, но у него нет опыта работы в VBA.Импорт Delphi dll в vba

Наш проект призван вызвать функции и передать некоторые параметры с листа Excel в программу (проект моделирования газовых турбин). Наш первый вопрос: как мы загружаем dll Delphi в VBA? Я читал о функции dllimport, но все же я не знаю, как использовать эту функцию.

Например, в библиотеке DLL есть функция: d4868activateLog код в Delphi нижеследовал:

function activateLog (const filename: PAnsiChar):Integer; 

Как мы называем эту функцию?

+0

Я думаю, ваш вопрос будет в скором времени будет закрыт не показывая [усилия] (HTTP : //bit.ly/ZcYEWW), чтобы решить вашу проблему. – mg30rg

+0

Я много искал в google, но без какого-либо результата. Как я уже сказал, были некоторые сайты с dllimport, но эта функция нигде не объясняется. Я знаю основы VBA, я знаю, как Google, но как импортировать DLL-файл в vba нигде не объясняется. – Volksdansmatt

+0

google «Доступ к DLL в VBA», нажмите «Мне повезет». Наивысший результат: [Доступ к DLL в Excel] (http://msdn.microsoft.com/en-us/library/office/bb687915% 28v = office.15% 29.aspx) –

ответ

4

Вы не можете вызвать эту функцию из VBA, так как она использует соглашение о вызове register. VBA может импортировать только функции stdcall.

Вы можете изменить код Delphi для:

function d4868activateLog(const filename: PAnsiChar): Integer; stdcall; 

, а затем в VBA можно было бы написать:

Private Declare Function d4868activateLog Lib "mydll.dll" (ByVal filename As String) As Long