C ++插件类型导出

时间:2014-01-26 15:42:58

标签: c++ vb.net command-line-interface mef

很抱歉再次询问,但同时我的东西正在运行。但是,我的主机应用程序不接受我的插件(用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。

你有什么想法吗?谢谢:))

0 个答案:

没有答案