나는 수백 가지 기능을 가진 네이티브 라이브러리를 래핑하고 있으며 그 모든 기능보다 위에 DllImport를 입력하는 것은 완전히 짜증나게합니다.C# 전 처리기 매크로 대체
모든 기능 위에 위와 같은 반복적 인 속성을 쓰는 것을 피할 방법이 있습니까?
public const string NativeDll = "mynativelib.dll";
[DllImport(NativeDll, CallingConvention = CallingConvention.Cdecl)]
public static extern void foo1();
[DllImport(NativeDll, CallingConvention = CallingConvention.Cdecl)]
public static extern void foo2();
[DllImport(NativeDll, CallingConvention = CallingConvention.Cdecl)]
public static extern void foo3();
[DllImport(NativeDll, CallingConvention = CallingConvention.Cdecl)]
public static extern void foo4();
...
[DllImport(NativeDll, CallingConvention = CallingConvention.Cdecl)]
public static extern void fooN();
Ctrl + C, Ctrl + V C#에는 방법이 없습니다. 그러나 관리되는 C++로 래퍼를 작성하고 DLL 헤더 파일을 직접 사용할 수 있습니다. 이것이 C++의 관리 대상입니다. – Tergiver
고마워,하지만 모노/리눅스에서이 래퍼를 사용하고 싶다. 그래서 C++/CLI는 옵션이 아니다. –