2014-09-24 5 views
-4

프로젝트의 경우 델파이로 만든 DLL을 가져와 일부 기능을 호출해야합니다. 그러나 프로젝트 팀의 아무도이 작업을 수행하는 방법을 알고 있지 않습니다. 우리 회사의 감독자는 C++로 DLL을 열고 함수를 호출하는 프로그램을 만들었지 만 VBA에서의 경험이 없습니다.vba에서 델파이 DLL 가져 오기

우리의 프로젝트는 함수를 호출하고 Excel 워크 시트의 일부 매개 변수를 프로그램 (가스 터빈 시뮬레이션 프로젝트)에 전달하는 것입니다. 첫 번째 질문은 VBA에서 델파이 DLL을 어떻게로드 할 것인가입니다. dllimport 함수에 대해 읽었지 만 여전히이 함수를 사용하는 방법을 모른다.

예를 들어, DLL 내에서 함수가있다 : d4868activateLog 델파이의 코드는 다음과 같습니다

function activateLog (const filename: PAnsiChar):Integer; 

우리가 어떻게이 함수를 호출합니까?

+0

을 : 당신이 쓰는 것 VBA에서 다음

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

그리고 :

당신은에 델파이 코드를 변경할 수 있습니다 : //bit.ly/ZcYEWW)를 사용하여 문제를 해결하십시오. – mg30rg

+0

Google에서 많은 검색을했지만 결과가 없습니다. 앞에서 말했듯이 dllimport가있는 사이트가 몇 개 있지만이 함수는 어디에도 설명되어 있지 않습니다. 나는 VBA의 기초를 안다, 나는 어떻게 Google을 알지만, vba에서 dll 파일을 임포트하는 방법은 어디에서도 잘 설명되지 않는다. – Volksdansmatt

+0

google "VBA에서 DLL 액세스"를 클릭하면 "운이 좋았습니다"라는 결과가 나타납니다. [방법 : Excel에서 DLL에 액세스] (http://msdn.microsoft.com/en-us/library/office/bb687915%) 28v = office.15 % 29.aspx) –

답변

4

register 호출 규칙을 사용하므로 VBA에서 해당 함수를 호출 할 수 없습니다. VBA는 stdcall 함수 만 가져올 수 있습니다. 나는 귀하의 질문에 곧 HTTP (더 [노력]을 보여주는 폐쇄 할 것이라고 생각

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