관리되지 않는 코드 (백 엔드)와 관리되는 코드 (프런트 엔드)가 혼합되어 있으므로 interop 기법과 DllImport
특성을 사용하여 관리되는 코드에서 관리되지 않는 코드를 호출해야합니다.OS 플랫폼 기반 DllImport
32 비트 및 64 비트 OS에 대해 두 가지 버전의 비 관리 코드를 컴파일했습니다. 그들은 각각 service32.dll
과 service64.dll
으로 명명됩니다.
[DllImport(@"service32.dll")] //for 32 bit OS invocation
public static void SimpleFunction();
[DllImport(@"service64.dll")] //for 64 bit OS invocation
public static void SimpleFunction();
을 그리고 내 응용 프로그램이 실행되는 플랫폼에 따라 그들에게 전화 : 그래서, 내 닷넷 코드에서, 나는 두 DLL을위한 DllImport
을해야 할 것입니다.
문제는 모든 관리되지 않는 기능에 대해 32 비트 OS 용과 64 비트 OS 용으로 두 번 선언해야한다는 것입니다. 이것은 작업의 중복이며 관리되지 않는 함수의 서명을 변경할 때마다 두 곳에서 수정해야합니다.
어쨌든 DllImport
에서 인수를 변경할 수 있으므로 플랫폼에 따라 올바른 dll이 자동으로 호출됩니다.
자동으로 !!!!!!! –
그것은 나에게 포트란처럼 보이지 않습니다. –
@High, 코드는 C#, interop 코드입니다. – Graviton