win32インターフェイスライブラリDuiLibの予備的な理解

DuiLibはオープンソースのwin32インターフェイスライブラリです。ダウンロードリンク:https//github.com/duilib/duilib

一部のウイルス対策ソフトウェアと同様のインターフェイスを作成できます。効果はまだ比較的良好です。

最初にデモをダウンロードして見てください。

現在の開発ツールはVS2010Expressバージョンのみです。それを開いて見てください。DuiLibプロジェクトはソースコードです。MFCDemoは例です。

    VS2010 ExpressはMFCをサポートしていないため、問題があり、デモを実行できません。ソリューションにwin32プロジェクト、空のプロジェクトを追加します。名前はduidemoです。

新しいdemo.cppを作成します。

#include "..\DuiLib\UIlib.h"

#ifdef _DEBUG
#   ifdef _UNICODE
#       pragma comment(lib, "DuiLib_ud.lib")
#   else
#       pragma comment(lib, "DuiLib_d.lib")
#   endif
#else
#   ifdef _UNICODE
#       pragma comment(lib, "DuiLib_u.lib")
#   else
#       pragma comment(lib, "DuiLib.lib")
#   endif
#endif

using namespace DuiLib;

class TestFrame : public WindowImplBase
{
public:
    TestFrame(){}
    ~TestFrame(){}

    virtual CDuiString GetSkinFolder()
    {
        return _T("");
    }
    virtual CDuiString GetSkinFile()
    {
        return _T("demo.xml");
    }
    virtual LPCTSTR GetWindowClassName(void) const
    {
        return _T("TestWindowClass");
    }
    virtual LRESULT OnClose(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled)
    {
        PostQuitMessage(0);
        return 0;
    }

    virtual void Notify(TNotifyUI& msg)
    {
        if (msg.sType == _T("click"))
        {
            if (msg.pSender->GetName() == _T("buttonName1"))
            {
                ::MessageBox(NULL, _T("buttonName1 has been clicked"), _T(""), NULL);
            }
        }
    }
    
private:

};

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPSTR /*lpCmdLine*/, int nCmdShow)
{
    CPaintManagerUI::SetInstance(hInstance);

    HRESULT Hr = ::CoInitialize(NULL);
    if (FAILED(Hr)) return 0;

    TestFrame* pFrame = new TestFrame();
    if (pFrame == NULL) return 0;
    pFrame->Create(NULL, _T("TestWindow"), UI_WNDSTYLE_FRAME, 0, 0, 0, 0, 0);
    pFrame->CenterWindow();
    ::ShowWindow(*pFrame, SW_SHOW);

    CPaintManagerUI::MessageLoop();

    ::CoUninitialize();
    return 0;
}

ビルドしますが、libファイルが見つかりません。

絶対パスを使用して確認してください。それでもlibファイルが見つかりません。サンプルフォルダを開くと、libではなくdllのみが含まれていることがわかります。

Libとdllは、DuiLibプロジェクトの生成、このプロジェクトの生成、エラーの生成、Expressバージョンに問題がある可能性があることによって取得されます。

次のように、ネチズンによって生成されたlibとdllのコピーをダウンロードします; duidemoフォルダーにコピーします;生成し、失敗します;

ネチズンによって生成される次のlibは次のとおりです。

生成は成功します;次のように;現在のコンピュータのアプリケーションポリシーは追加のexeの操作を制限します、あなたはそれを自分で生成することができます;簡単な例はただのウィンドウとボタンです;

インクルードされたヘッダーファイルには他のヘッダーファイルが多数含まれているため、元のソリューション構造に基づいている必要があります。
 

 

おすすめ

転載: blog.csdn.net/bcbobo21cn/article/details/113623472