나는 C++에서 메소드를 호출하는 법을 배우고있다. 나는 약간의 연구를했고 Pinvoke는 좋은 방법 인 것 같습니다.C#에서 DLL로 사용하도록 C++ 코드를 어떻게 변경합니까?
나는 그것이 C#에서 호출 할 수 있도록해야하고, 어떻게 C#에서 호출 할 수있는 방법을 쓸 수있는 방법을 방법이 간단한 C++ 코드를 번역 할 수있는 방법?
namespace MathFuncs
{
class MyMathFuncs
{
public:
double Add(double a, double b);
MyMathFuncs getClass();
};
}
C#에서 MathFuncsLib.cpp
#include "MathFuncsLib.h"
namespace MathFuncs
{
MyMathFuncs MyMathFuncs::getClass() {
return *(new MyMathFuncs());
}
double MyMathFuncs::Add(double a, double b) {
return a + b;
}
}
이
가 싶습니다가 가지고
MathFuncsLib.h :
나는 헤더 파일이
main()
{
MyMathFuncs abd = MyMathFuncs::getClass();
abd.Add(1.2, 2.3);
}
나는 그것이 어떻게 달성되어야하는지 전혀 모른다. 그래서 나는 그것에 대해 물어 보는 것이 더 낫다고 생각한다.
흥미로운 질문입니다. 나는 그것을 달성 할 수 있을지 확신하지 못한다. (이름 짓기는 클래스를 내보내기의 기본 전제뿐만 아니라 극복하는 것이 어려울 것이다.) 나는 이런 일이 어떻게 될지 모르지만, P/Invoke와 C++/CLR의 조합으로 나타냅니다. 블로그 게시물 [쉘이 C++로 작성된 경우 기본 클래스를 내 보내지 않는 이유는 무엇입니까?] (http://blogs.msdn.com/b/oldnewthing/archive/2011/10/24/10229097.aspx) Raymond The Old New Thing의 Chen은 또한 당신에게 흥미있을 것입니다. –
Pinvoke는 클래스를 호출하려는 것이 아닙니다. 그렇게하려면 C++/CLI를 사용하는 것이 가장 좋습니다. –
그게 어떤 방식이든, 두 가지 샘플을 제공 할 수 있습니까? – olidev