2013-05-08 6 views
3

은 내가 DLL을, C++에서 함수를 작성했습니다 :파스칼 스크립트가 내 외부 함수 선언 근처에 다른 세미콜론을 기대하는 이유는 무엇입니까?

functions.h :

#ifndef FUNCTIONS_H 
#define FUNCTIONS_H 


int DLLsquare(int x); 
#endif /* FUNCTIONS_H */ 

functions.cpp : 나는 DLL이 컴파일

#include "functions.h" 
int DLLsquare(int x){ 
    return x*x; 
} 

. 이제 이것을 파스칼 스크립트로 가져오고 싶습니다 :

program TestDLL; 

function Square(x: Integer): Integer; 
external '[email protected]'; 

begin 
end. 

이제 컴파일되지 않습니다. 내가 얻을 :

(7 : 1) : 세미콜론 (';') 라인 6 컴파일이 실패
에 기대를.

인터넷상의 몇몇 자습서는 이것이 정확하게 갈 길이라는 것을 알려줍니다. 그래서 나는 무엇을 놓치고 있습니까?

+0

다른 곳에서는 세미콜론이 누락 되었습니까? – NetStarter

+0

어떤 파스칼 컴파일러를 사용하고 있습니까? –

+1

예, 모든 종류의 장소에서 세미콜론을 추가 및 제거하려고했지만 내 경험상 구문이 올바른 방식입니다. 내가 여기서 분명히하는 무언가를 놓치지 않는 한 – RickB

답변

2

외부 함수를 선언하고 OnExternalProc 이벤트에 할당 된 처리기가없는 경우 파스칼 스크립트에서 "세미콜론 예상"오류가 발생합니다.

직접 구현하거나 단위의 DllExternalProc을 사용할 수 있습니다. OnExternalProc 이벤트를 할당하고 스크립트에 대한 두 함수를 호출하여 UnloadDllDLLGetLastError이라고하는 컴파일러 구성 요소에 RegisterDll_Compiletime을 호출하는 것이 좋습니다.

호스트 프로그램이 외부 기능을 처리 할 수단을 제공하지 않았을 때 오류를 발생시키는 것은 이해할 수 있지만 오류 메시지의 특정 문구는 의미가 없습니다. 프로젝트를 개선하기 위해 file an issue으로 보내 주시기 바랍니다.