2010-08-10 5 views
2

새 프로젝트에서 기존 C C++ 함수를 사용하고 싶습니다. 이를 위해 C# 프로젝트에 C/C++ dll을 추가해야합니다.C/C++ dll을 .NET 응용 프로그램으로 가져 오는 방법

내 C/C++ 프로젝트는 UnManaged 유형이며 COM 프로젝트가 아닙니다. 나는 MSDN에서 후 몇 가지 기사를 볼 수 및 시도 :

[DllImport("user32.dll", EntryPoint="MessageBoxA")] 

하지만 user32.dll 또는 my.dll을 배치해야 어디 확실하지 않다. 내 DLL을 GAC 또는 다른 물리적 폴더에 배치해야합니까?

실제 폴더가 될 것이라면 상대 경로 또는 절대 경로를 사용할 필요가 없습니까?

또한 InterOp를 사용하여 C++ DLL을 포팅하는 방법에 대해 이야기하는 기사는 거의 읽지 않지만 시작하는 방법은 확실하지 않습니다.

답변

3

자신의 dll을 C : \ Windows \ system32에 넣지 마십시오. user32.dll과 같은 Windows의 일부를 사용하려는 경우에는 아무 곳에 나 두지 마십시오. 이미 C : \ Windows \ system32가 경로에 있으므로 런타임에 이미 있습니다. 자신의 DLL을 사용하려면 bin 또는 bin \ Debug 또는 exe 옆의 폴더에 넣으십시오. 이것은 프로젝트에 추가하여 가장 쉽게 수행 할 수 있으므로 빌드 할 때 출력 디렉토리로 복사 할 수 있지만 MSI 등을 가질 수 있습니다. 여러 응용 프로그램에서 사용하는 경우 새 응용 프로그램이 업데이트 될 때 사용하기를 원할지 또는 기존 복사본을 사용할지 결정해야합니다. 복잡한 질문이 될 수 있으며 한 앱에서 제대로 작동하도록 할 수 있습니까?

엔트리 포인트는 DLL 내부의 함수 이름입니다. 관리 코드에서 동일한 이름을 사용하는 경우 제외 할 수 있습니다. 복잡한 DLL 패키지를 관리 코드에서 사용하는 더 간단한 이름으로 매핑 할 수 있습니다.

2

bin 폴더에 넣을 수 있습니다.

+0

진입 점은 어떻게됩니까? – Simsons

관련 문제