제목이 제 질문에 혼란 스럽습니다. DLL에서 호출 할 수있는 C#으로 API를 생성하십시오.
설명해 드리죠 : - 이 선배가 쓴 어떤 DLL을하고 다음과 같이 나는 C#에서 사용할 :말은, DLL 이름을 기존 SeniorDLL 내가 그 DLL에서 함수를 SeniorFunc를 사용하고 싶습니다. 내가 할 것은 - 내가 먼저 함수 호출하기 전에 내가 쓰기,이 기능을 사용하려면
private delegate int SeniorFunc(IntPtr Blah);
[DllImport("kernel32")]
public extern static IntPtr LoadLibrary(string lpFileName);
[DllImport("kernel32", CharSet = CharSet.Ansi)]
public extern static IntPtr GetProcAddress(IntPtr hModule, string lpProcName);
SeniorFunc fp_Senior;
과 기능에
:처리 INTPTR;
handle = IntPtr.Zero;
handle = LoadLibrary("<DLL Path>");
IntPtr fPtr = GetProcAddress(handle, "SeniorFunc");
fp_Senior = (SeniorFunc)Marshal.GetDelegateForFunctionPointer(fPtr, typeof(SeniorFunc));
그리고 나는 지금 내가 DLL에서 함수를 호출 할 수 있습니다하는 C#에서 나를 위해 같은 DLL을 만들 fp_Senior(<Parameter>);
를 통해이 기능을 사용합니다. 현재 DLL을 만들었지 만 DLL에 클래스 인스턴스를 만든 다음 ClassInstance.MyFunction(<Parameters>)
처럼 액세스해야합니다.
인스턴스를 만들지 않고 함수 호출을 직접 얻으려면 어떻게해야합니까? 즉, (내가 맞는지 틀린 지 모르겠다) 어떻게 API를 만들 수 있습니까 ??
감사합니다.