내 FE 제품 OrcaFlex으로이 작업을 수행했습니다. Delphi의 C 코드 (정적 또는 동적)에 연결할 수있는 두 가지 옵션이 있습니다. 분산 및 버전 관리가 훨씬 쉬워지기 때문에 정적으로 링크합니다. 그러나 정적으로 작업하는 것은 정말 대단한 일이며 델파이의 많은 문서화되지 않은 측면에 의존해야합니다.
필자는 동적 연결이 가장 필요하다고 생각합니다. 기본적으로 C 코드를 컴파일하고 DLL에 링크해야합니다. Borland C 컴파일러를 사용하여이 작업을 수행하는 것이 좋습니다. 이렇게하려면 무료 명령 행 버전 BCC55를 사용할 수 있습니다. 볼랜드 C를 사용하면 델파이처럼 8087 부동 소수점 유닛에 대해 동일한 가정을 할 수 있다는 장점이 있습니다. MSVC로 빌드하면 MS는 부동 소수점 예외를 발생시키지 않기로 결정했습니다. 볼랜드 C는 부동 소수점 예외를 발생시킵니다. 이것은 다소 복잡한 경우이지만, 견고해야 할 제품을 선적하려는 경우 관련성이 있습니다.
기본적으로 C 코드는 C 호출 규칙을 사용한다는 것을 알고 있어야하며 그저 붙어 있습니다. 외부 루틴을 cdecl 호출 규칙으로 선언하여이를 Delphi로 가져옵니다.
다른 두 가지 사항은 두 모듈 사이에 명확한 인터페이스를 정의하는 것입니다. 예외가 모듈 경계를 넘지 않으며 경계를 넘어 특별한 유형 (예 : Delphi 문자열)을 전달하지 않아야합니다. 따라서 문자열의 경우 PChar (또는 더 나은 PAnsiChar 또는 PWideChar를 사용하여 Delphi 2009 이상으로 업그레이드 할 때 의미를 변경하지 않아야 함)를 사용하십시오.
** Mathematica **를 사용하여 C 코드를 생성 하시겠습니까? –
@ 벨리 다리우스 예. –
@Chris 답변 해 주셔서 감사합니다. 매쓰 매 티카에서 C로 변환하기위한 변환 소프트웨어/기능에 대한 포인터를 게시 해주십시오. –