C++ 모드에서 컴파일러를 사용하여 빌드할 수 있습니다포스트그레SQL확장자: 다음 지침을 따르세요.
백엔드에서 액세스하는 모든 기능은 C를 제공해야 합니다. 백엔드에 대한 인터페이스; 그러면 이러한 C 함수는 C++를 호출할 수 있습니다. 기능. 예를 들어,외부 C5928_6103
적절한 할당 해제 방법을 사용하여 메모리를 확보하십시오. 에 대한
예를 들어 대부분의 백엔드 메모리는 다음을 사용하여 할당됩니다.팔록()그러니까 사용하세요pfree()해제(예: C++ 사용))삭제()그런 경우에는
실패하다.
예외가 C 코드로 전파되는 것을 방지합니다(
모두의 최상위 수준에 있는 catch-all 블록외부 C함수). 이는 다음과 같은 경우에도 필요합니다.
C++ 코드는 이벤트 때문에 예외를 발생시키지 않습니다.
메모리 부족과 마찬가지로 여전히 예외가 발생합니다. 모든 예외
포착되어야 하며 적절한 오류가 C로 다시 전달되어야 합니다.
인터페이스. 가능하다면 다음을 사용하여 C++를 컴파일하세요.-fno-예외예외를 제거하려면
완전히; 그러한 경우에는 오류가 있는지 확인해야 합니다.
C++ 코드, 예: 에서 반환한 NULL을 확인하세요.신규().
C++ 코드에서 백엔드 함수를 호출하는 경우 다음을 확인하세요.
C++ 호출 스택에는 기존의 일반 데이터 구조만 포함되어 있습니다.
(POD). 이것은 필요하다
백엔드 오류로 인해 먼 거리가 생성되기 때문입니다.longjmp()제대로 풀리지 않는
POD가 아닌 객체가 포함된 C++ 호출 스택.
요약하자면 C++ 코드를 벽 뒤에 배치하는 것이 가장 좋습니다.외부 C에 인터페이스하는 함수 백엔드를 보호하고 예외, 메모리 및 호출 스택 누출을 방지합니다.