C# C++ DLL 파일 호출
2456 단어 C++
해야 할 일은 C++로 작성된 DLL을 인용해야 하는데, 처음에는 인터넷에서 보기만 해도 귀찮아 꼼꼼히 연구하지 못했는데, 지금은 다른 사람이 쓴 글을 보는 것도 어렵지 않다.다음을 참조하십시오.
1, 전체 DLL
C++를 사용하여 동적 라이브러리 항목을 만들고 프로그램 설정에서 "DLL"을 선택합니다.
CPPDemo 열기cpp 파일, 다음 코드 추가
#include "stdafx.h"
extern "C" __declspec(dllexport) int Add(int x, int y)
{
return x + y;
}
extern "C" __declspec(dllexport) int Sub(int x, int y)
{
return x - y;
}
extern "C" __declspec(dllexport) int Multiply(int x, int y)
{
return x * y;
}
extern "C" __declspec(dllexport) int Divide(int x, int y)
{
return x / y;
}
이 안에서 extern "C"는 이중적인 의미를 포함하고 있으며, 글자에서 얻을 수 있다. 우선, 그 수식의 목표는 "extern"이다. (extern은 변수나 함수 앞에 두어 변수나 함수의 정의를 다른 파일에서 나타낼 수 있으며, 컴파일러가 이 변수와 함수를 만났을 때 다른 모듈에서 그 정의를 찾을 수 있음을 알린다.)그 다음으로 그것에 의해 수식된 목표는'C'이다.extern "C"로 장식된 변수와 함수는 C 언어로 컴파일되고 연결됩니다.
__declspec (dllexport) 의 목적은 대응하는 함수를 DLL 동적 라이브러리에 넣기 위해서입니다.
extern "C"__declspec(dllexport)을 합친 목적은 DllImport를 사용하여 C++가 아닌 DLL 파일을 호출하기 위해서입니다.DllImport를 사용하면 C 언어 함수로 만든 DLL만 호출할 수 있기 때문입니다.
프로젝트 컴파일, CPPDemo.dll
2、C#을 사용하여 이 DLL을 호출
C# 프로젝트를 만들고 CPPDLL 클래스를 새로 만듭니다. 클래스에 다음과 같은 코드를 추가하면 사용할 방법을 다시 설명하고 구체적인 실현 코드는 쓰지 않아도 됩니다.
public class CPPDLL
{
[DllImport("CSharpInvokeCPP.CPPDemo.dll")]
public static extern int Add(int x, int y);
[DllImport("CSharpInvokeCPP.CPPDemo.dll")]
public static extern int Sub(int x, int y);
[DllImport("CSharpInvokeCPP.CPPDemo.dll")]
public static extern int Multiply(int x, int y);
[DllImport("CSharpInvokeCPP.CPPDemo.dll")]
public static extern int Divide(int x, int y);
}
주의 1은 DllImport을 사용해야 하며, "System.Runtime.Interop Services"를 인용해야 한다. 2, CPDemo에서 생성된 DLL 파일을 CSharpDemo의bin 디렉터리로 복사해야 한다.
이렇게 하면 프로젝트에서 DLL 방법을 사용할 수 있습니다.
int result = CPPDLL.Add(10, 20);
이것은 단지 정적 방법을 통해 C++ 안의 함수를 호출할 뿐, 나에게도 충분하다.잠시 이것들을 쓰면 견지하는 것이 승리다.안에 있는 코드는 다른 사람의 성과를 참고했기 때문에 작가를 찾지 못해서 말하기가 불편하다.인터넷상에서 모두가 공유해야만 진보할 수 있다고 말하고 싶을 뿐, 내가 쓴 것이 너를 도울 수 있다면 나는 매우 기쁘다.좋은 의견이 있으면 피드백을 환영합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Visual Studio에서 파일 폴더 구분 (포함 경로 설정)Visual Studio에서 c, cpp, h, hpp 파일을 폴더로 나누고 싶었습니까? 어쩌면 대부분의 사람들이 있다고 생각합니다. 처음에 파일이 만들어지는 장소는 프로젝트 파일 등과 같은 장소에 있기 때문에 파일...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.