C++로 정의 된 함수를 사용하는 WPF 응용 프로그램을 작성하려고합니다. C++ 응용 프로그램은 DLL로 컴파일됩니다.DllImport Not Working
내가하고있는 일은 DllImport 특성을 사용하여 함수를 가져 와서 사용하는 것입니다. 내 컴퓨터에서 잘 작동하지만 다른 컴퓨터에서 WPF 응용 프로그램을 실행하려고하면 "DLL을 찾을 수 없습니다"오류가 발생합니다.
내 C# (WPF) 코드의 발췌 :
[DllImport("Dll.dll")]
public static extern int MyFunc();
public MainWindow()
{
InitializeComponent();
MessageBox.Show("Starting");
try
{
MessageBox.Show(MyFunc().ToString());
}
catch (Exception exc)
{
while (exc != null)
{
MessageBox.Show(exc.Message);
exc = exc.InnerException;
}
}
내 C++ 코드 내 오류가있을 경우
extern "C" __declspec(dllexport) int MyFunc() {
return 3;
}
사람이 볼 수 있을까요?
미리 도움 주셔서 감사합니다.
편집 : 문제는 종속성 "MSVCR100D"가없는 것으로 보입니다. 내 이해는이 VC++ 재배포 가능 패키지에 파일을 내가 아무 소용이 설치되어있는 것입니다.
고마워. 나는 그 둘을 시도 할 것이다. – JonaGik
Dependency Walker를 사용하여 응용 프로그램을 프로파일 링했는데 분석에 사용하고있는 DLL이 표시되지 않았습니다. 따라서이 문제 외에도 DLL의 종속성을 찾을 수 없습니다. – JonaGik
C++ 분석 종속성 워커가있는 DLL, C# 하나가 아닙니다. 그리고 MSVCR100D.dll이 누락 된 경우 MSVCR100D.dll (디버그 용 D)이 배포되지 않고 redestributable 패키지의 일부가 아니므로 디버그 빌드를 릴리스 빌드로 전환해야합니다. – Codo