지금 도움이 필요합니다. 누군가가 내 QT 기반 코드를 "C# 응용 프로그램에서 작동하도록"전송하는 것을 도울 수 있다면 정말 좋을 것입니다.Qt 관리되지 않는 C++ 클래스가 C# .Net과 함께 작동합니다.
내가이 간단한 QT 클래스가 있다고 가정하자 :
class ItShouldWork : public QObject
{
Q_OBJECT
public:
ItShouldWork(QObject* parent = 0) : QObject(parent){}
QString id() const { return objectName(); }
};
가 지금은 비주얼 스튜디오 C#을이 클래스에 액세스 할 수 있도록하려면, 나는 래퍼를 통해 관리되지 않는 DLL 및 액세스를 만들려고 시도했습니다 COM 구성 요소를 만들지 만 지금은 완전히 멈춰서이 간단한 클래스로 시작합니다. 나는이 같은 당신이 __declspec (dllexport)과 통근 "C"를 사용할 수있는 본 적이 :
extern "C" __declspec(dllexport) double Subtract(double a, double b)
을 다음 .NET에서 _dllImport를 사용,이 위의 기능이 잘 작동하지만, 예 A QString에 대한 추가 할 때 그것에 더 이상 내 dll을 인식하지 못하고 dllNotFoundException이 발생합니다.
그런 다음 어쩌면 당신은 어떤 종류의 래퍼가 필요하다고 생각했습니다. 그렇다면 어떻게해야합니까? 봤지만 멀리 정말 C + + 및 Qt 기능 날 도와 아무것도.
dll과 c-wrapper를 만드는 방법이나 COM 구성 요소 dll을 직접 작성하는 방법에 대한 단계별 설명이 정말 멋지 겠지만, 실제로 어떻게 처리되었는지는 신경 쓰지 않지만 방법을 알고 있다면 도와주세요. 작은 자습서? 나는 미치겠 어 ...
'QString'은'QT' 프레임 워크에 고유합니다. 'QString' 클래스를 일반적인'String' 클래스로 변환하기 위해 w 래퍼를 닫아야합니다. –
@Rambound 어떻게 할 수 있습니까? 래퍼 내 말은, QString을 char *로 변환하는 방법은 문제가 아니어야합니다. –