Duilib Win32 DirectUI面開源項目


今天了解到DirectUI開源項目Duilib,感覺不錯,就下了一份源代碼SVN256,可能是因為我用的是win8 x64和VS2012,編譯是出現錯誤,現在把解決方法記錄下來,供大家參考:

1. UIRichedEidt.cpp中CTxtWinHost::Init函數中調用了Riched20.dll中的CreateTextServices函數,但是源工程中是靜態鏈接Riched20.dll,在工程屬性->鏈接器中直接加入Riched20.lib,但是電腦中並沒有lib文件,所以需要把靜態連接方式改成動態連接方式,即把下面代碼做出修改:

if(FAILED(CreateTextServices(NULL, this, &pUnk)))
        goto err;

上述代碼修改為如下代碼即可:

HINSTANCE richHandle = NULL;
typedef HRESULT  (_stdcall *_CTS)(
        IUnknown *punkOuter,
        ITextHost *pITextHost,
        IUnknown **ppUnk) ; 
_CTS CTS = NULL;
richHandle = LoadLibraryW(L"Riched20.dll");
if(richHandle == NULL)
    exit(0);
else
{
    CTS = (_CTS)GetProcAddress(richHandle, "CreateTextServices");
    if(NULL == CTS)
        exit(0);
}
// Create Text Services component
if(FAILED(CTS(NULL, this, &pUnk)))
    goto err;
FreeLibrary(richHandle);

2. UIDesigner工程中ResourceView.cpp中91行

if (CanAdjustLayout())

在VS2012中,刪除了此函數,所以此處會出現編譯錯誤,可直接注釋掉,但是有什么后果我還不清楚。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM