.dll은 C++/CLI 및 .NET으로 작성되었습니다. 따라서 .NET 응용 프로그램을 대상으로합니다. API는 관리되는 형식을 사용하는 래퍼 집합이므로 NET 네이티브 형식입니다. 나는 .DLL 수입과 같은 기능을 추가 한 :C# DLLImport for C++ dll
[DllImport(@"maplib.dll")]
public static extern bool initialize(string a);
내 C# 코드에서이 함수를 호출 할 때 나는 또 다른 기능 등을 추가 할 경우, 그것은 잘 작동하지만 ..
[DllImport(@"maplib.dll")]
public static extern bool initialize(string a);
public static extern bool runfile(string a, string b);
프로그램을 실행할 때이 오류가 발생합니다.
"메서드 'runfile'에 구현이 없으므로 'myapp, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null'어셈블리에서 'myapp.main'유형을로드 할 수 없습니다. (RVA 없음). "
왜이 오류가 발생하며 어떻게 해결할 수 있습니까?
[DllImport(@"maplib.dll")]
public static extern bool initialize(string a);
[DllImport(@"maplib.dll")]
public static extern bool runfile(string a, string b);
하지만 당신의 DLL이 .NET의 경우 왜 그냥하기 위해 정기적 참조를 추가하지 당신은 C# 코드를 사용하는 것처럼 사용 :
나는 그것에 대한 참조를 추가 할 수 있지만, 그것이 의미가있는 경우 사용 지시문을 작성할 때 나타나지 않습니다. – david
이것은 네이티브 C++로 함수를 내 보낸 때문입니다. 대신 관리되는 클래스에 정적으로 넣어보십시오. – Krumelur
또한 ref 클래스를 public으로 만들고 네임 스페이스에 넣습니다. – Simon