1.DuiLib をコンパイルして実行します

記事ディレクトリ

1. ネイティブ DuiLib をコンパイルして実行します

ネイティブ DuiLib アドレス: DuiLib アドレス

ここに画像の説明を挿入

1.1. このようにダウンロードして解凍します

ここに画像の説明を挿入

1.2. .sln ソリューション ファイルを開く

ここに画像の説明を挿入

ネイティブDuiLib は、デフォルトでマルチバイト マルチキャラクタ セットを設定し、デフォルトで.dllダイナミック ライブラリを生成します。

1.3、コンパイル成功

ここに画像の説明を挿入

binディレクトリには、さまざまな **.exe実行可能ファイルと.dll** ダイナミック ライブラリが生成されます。

ここに画像の説明を挿入

2. Netease DuiLib をコンパイルして実行します。

github アドレス: Netease DuiLib

ここに画像の説明を挿入

2.1. このようにダウンロードして解凍します

ここに画像の説明を挿入

2.2. .sln ソリューション ファイルを開く

ここに画像の説明を挿入

2.3、コンパイル成功

ここに画像の説明を挿入

binディレクトリには、さまざまな.exe実行可能ファイルとlibs ディレクトリ内の.lib静的ライブラリが生成されます
ここに画像の説明を挿入

ここに画像の説明を挿入

3. Tencent DuiLib と 2017 をコンパイルして実行する

3.1. 次のようにダウンロードして解凍します

ここに画像の説明を挿入

3.2. .sln ソリューション ファイルを開く

3.3、コンパイル成功

4. ネイティブDuiLibの.libと.dllの静的ライブラリと動的ライブラリ

4.1. Mr.DuiLib を使用して .dll ダイナミック ライブラリを生成する

ビルドディレクトリ:
ここに画像の説明を挿入

ここに画像の説明を挿入

4.2. DuiLib を使用して静的ライブラリを生成する

ビルドディレクトリ:
ここに画像の説明を挿入

ここに画像の説明を挿入

4.3、win32 プロジェクトを作成する

4.3.1. 新しいプロジェクトの作成

ここに画像の説明を挿入

このインターフェースが出てきます:
ここに画像の説明を挿入

ここに画像の説明を挿入

4.3.2. 設定項目

マルチバイトのマルチ文字セット:

ここに画像の説明を挿入

構成ヘッダー ファイルのディレクトリ:

ここに画像の説明を挿入
ここに画像の説明を挿入

構成ライブラリのディレクトリ:

ここに画像の説明を挿入

ここに画像の説明を挿入

4.3.3. ヘッダーファイルをインクルードし、DuiLib コマンドスペースを使用する

ここに画像の説明を挿入

コンパイルに問題がない場合は、DuiLiB の構成が成功したことを意味します。

ここに画像の説明を挿入

4.3.4. .dll ダイナミック ライブラリを使用する簡単なプログラムを作成する

// new_test_demo.cpp : 定义应用程序的入口点。
//

#include "stdafx.h"
#include "new_test_demo.h"

#include"UIlib.h"
using namespace DuiLib;

class CFrameWindowWnd : public CWindowWnd, public INotifyUI
{
    
    
public:
	CFrameWindowWnd() {
    
     };
	LPCTSTR GetWindowClassName() const {
    
     return _T("UIMainFrame"); };
	UINT GetClassStyle() const {
    
     return UI_CLASSSTYLE_FRAME | CS_DBLCLKS; };
	void OnFinalMessage(HWND /*hWnd*/) {
    
     delete this; };

	void Notify(TNotifyUI& msg)
	{
    
    
		if (msg.sType == _T("click")) {
    
    
			if (msg.pSender->GetName() == _T("closebtn")) {
    
    
				Close();
			}
		}
	}

	LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
	{
    
    
		if (uMsg == WM_CREATE) {
    
    
			m_pm.Init(m_hWnd);
			CControlUI *pButton = new CButtonUI;
			pButton->SetName(_T("closebtn"));
			pButton->SetBkColor(0xFFFF0000);
			m_pm.AttachDialog(pButton);
			m_pm.AddNotifier(this);
			return 0;
		}
		else if (uMsg == WM_DESTROY) {
    
    
			::PostQuitMessage(0);
		}
		LRESULT lRes = 0;
		if (m_pm.MessageHandler(uMsg, wParam, lParam, lRes)) return lRes;
		return CWindowWnd::HandleMessage(uMsg, wParam, lParam);
	}

public:
	CPaintManagerUI m_pm;
};

// 程序入口及Duilib初始化部分
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPSTR /*lpCmdLine*/, int nCmdShow)
{
    
    
	CPaintManagerUI::SetInstance(hInstance);
	CPaintManagerUI::SetResourcePath(CPaintManagerUI::GetInstancePath());

	CFrameWindowWnd* pFrame = new CFrameWindowWnd();
	if (pFrame == NULL) return 0;
	pFrame->Create(NULL, _T("测试"), UI_WNDSTYLE_FRAME, WS_EX_WINDOWEDGE);
	pFrame->ShowWindow(true);
	CPaintManagerUI::MessageLoop();

	return 0;
}

コンパイル:

ここに画像の説明を挿入

実行時にエラーが報告され、.dllダイナミック ライブラリが見つかりません。

ここに画像の説明を挿入

**.dll ダイナミック ライブラリを.exe** と同じディレクトリに置くだけです。
ここに画像の説明を挿入

再度正常に実行します。
ここに画像の説明を挿入

4.3.5. .lib ダイナミック ライブラリを使用する簡単なプログラムを作成する

4.3.5.1. lib 静的ライブラリを生成し、Duilib 静的ライブラリを正しくコンパイルする
4.3.5.1.1. 公式DuiLib_Staticプロジェクトを追加する

公式コードにはプロジェクトファイルがありDuiLib_Static.vcxproj、これはDuiLibの静的ライブラリによってコンパイルされたプロジェクトです。

ここに画像の説明を挿入

**(ここで変更されています)** しかし、注意深い人は、プロジェクト ファイルが 1 つしかなく、ファイル ディレクトリ ツリー記述ファイル.vcprojがないことに気づいたかもしれません。.filters問題はありません。Duilib.vcxproj.filtersファイルを直接コピーして に名前を変更できますDuilib_Static.vcxproj.filters。このファイルはvsで見られるファイル ディレクトリ構造のみを記述しており、静的ライブラリと動的ライブラリの両方が同じディレクトリ ツリーを使用します。変更が完了すると、次の図のようになります。
ここに画像の説明を挿入

Duilib_Static.vcxproj.filtersファイルを追加し、このプロジェクトをduilibソリューションに追加します。次に、DuiLib_Static.vcxprojを開いてコンパイルします。

ここに画像の説明を挿入

このようにして、 DuiLib_d.lib静的ライブラリが生成されます

ここに画像の説明を挿入

4.3.5.2. UILIB_STATIC をプロジェクトプリプロセッサに追加する

ここに画像の説明を挿入

4.3.5.3、DuiLib_d.lib 静的ライブラリを追加

ここに画像の説明を挿入

ここに画像の説明を挿入

4.3.5.4. 再コンパイル時に以下の問題が発生する

ここに画像の説明を挿入

マルチスレッド デバッグ用にC++ ランタイム ライブラリを変更します。
ここに画像の説明を挿入

ここに画像の説明を挿入

再度コンパイルします。

ここに画像の説明を挿入

4.3.5.5. 任意のディレクトリで実行可能

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_44918090/article/details/131233973