试图用C#创建数学输入面板

如何在C#中创建数学输入面板?

我试图将它放入一个dll并调用它但它立即关闭。

#include  #include  #include "micaut.h" #include "micaut_i.c" extern "C" __declspec(dllexport) int run() { CComPtr g_spMIC; // Math Input Control HRESULT hr = CoInitialize(NULL); hr = g_spMIC.CoCreateInstance(CLSID_MathInputControl); hr = g_spMIC->EnableExtendedButtons(VARIANT_TRUE); hr = g_spMIC->Show(); return hr; } 

我在C#中调用了dll函数,面板弹出但立即消失。 有什么建议?

在C#项目中,添加对COM库micautLib的引用。 然后你可以使用以下代码(在C#中):

 MathInputControl ctrl = new MathInputControlClass(); ctrl.EnableExtendedButtons(true); ctrl.Show(); 

我不确定这是不是你应该怎么做,但这似乎干净利落(完整的程序)。

 using System; using System.Windows.Forms; using micautLib; namespace MathInputPanel { static class Program { [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); MathInputControl ctrl = new MathInputControlClass(); ctrl.EnableExtendedButtons(true); ctrl.Show(); ctrl.Close += () => Application.ExitThread(); Application.Run(); } } }