문제

C#에서 수학 입력 패널을 어떻게 작성합니까?

나는 그것을 DLL에 넣고 부르려고 노력했지만 바로 닫힙니다.

#include <stdafx.h>
#include <atlbase.h>
#include "micaut.h"
#include "micaut_i.c"

extern "C" __declspec(dllexport) int run()
{
   CComPtr<IMathInputControl> 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();
        }
    }
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top