很抱歉再次询问,但同时我的东西正在运行。但是,我的主机应用程序不接受我的插件(用C ++ / CLI编写)作为IPlugin。
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主机应用程序中,代码是:
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。
你有什么想法吗?谢谢:))