Извините, что спросил снова, но между тем у меня всё заработало. Однако мое хост-приложение не принимает мой плагин (написанный на C ++ / CLI) в качестве IP-плагина.
Код в заголовке C ++ / CLI Plugin.dll:
#pragma once
using namespace System;
using namespace System::ComponentModel;
using namespace SharedLibrary;
using namespace Plugin_Interface;
namespace MyCppPlugin {
public ref class MyPlugin abstract : public Plugin_Interface::IPlugin
{
public:
virtual bool CreateInstance(SharedLibrary::MemoryArbiter^%,
SharedLibrary::clsMessageQueue^%,
SharedLibrary::clsGPIO^%,
SharedLibrary::Types^%,
SharedLibrary::DisplayDriver^%);
virtual bool DeleteInstance(void);
virtual void ForceUnload(void);
virtual void Interrupt(void);
virtual void Main_Loop(void);
};
};
В моем VB.NET Host Application код выглядит так:
Class clsInterface
<ImportMany(GetType(IPlugin))> _
Public Plugins As IPlugin()
Public Sub Load()
Dim MyDialog As Windows.Forms.FolderBrowserDialog = New FolderBrowserDialog()
MyDialog.Description = "Bitte Plugin-Verzeichnis auswählen"MyDialog.SelectedPath = Environment.CurrentDirectory
MyDialog.ShowDialog()
Dim catalog = New DirectoryCatalog(MyDialog.SelectedPath)
Dim container = New CompositionContainer(catalog)
container.ComposeParts(Me)
End Sub
End Class
Мой класс clsInterface не распознает мой плагин C ++ / CLI, хотя он __typeof.
У тебя есть идеи? Спасибо 🙂
Задача ещё не решена.
Других решений пока нет …