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