zoukankan      html  css  js  c++  java
  • 一起学libcef--搭建自己的libcef运行环境(Win32程序,错误C2220解决方案)

    转自 http://blog.csdn.net/wangshubo1989/article/details/50180413

    现在就来讲讲如何在自己的win32程序中搭建libcef运行环境。

    首先就是建一个空的win32项目,例如名字为TestLibCef。

    1. cefsimple目录(注意是拷贝文件夹)拷贝到新工程下并包含在项目中(注意,是TestLibCefTestLibCef文件夹下

    2. 并在TestLibCefTestLibCef文件夹下,新建一个dll文件夹 
    源码把Debug目录下的文件全部拷贝到该文件夹下()

    3. 把resource目录下的文件全部拷贝到该文件夹下(TestLibCefTestLibCefdll

    4.把include文件夹拷贝到该文件夹下(注意是拷贝文件夹)(TestLibCefTestLibCefdll

    5.把outDebugliblibcef_dll_wrapper.lib文件拷贝到该文件夹下(TestLibCefTestLibCefdll) 
    (如果你要发布你的应用程序了,那么你就应该拷贝相应的release目录下的文件)

    这个时候,你的dll文件夹是有这些文件: 
    这里写图片描述

    6.在工程中添加一些头文件和源文件,如下图: 
    这里写图片描述

    7.接下来就是修改工程的属性了,在解决方案下TestLibCef上右键,属性。 
    常规页,设置如下: 
    这里写图片描述

    8. C/C++下的常规的“附加包含目录”添加如下: 
    这里写图片描述

    9. C/C++下的预处理器进行修改,加入如下文件:

    _DEBUG
    V8_DEPRECATION_WARNINGS
    BLINK_SCALE_FILTERS_AT_RECORD_TIME
    _WIN32_WINNT=0x0602
    WINVER=0x0602
    WIN32
    _WINDOWS
    NOMINMAX
    PSAPI_VERSION=1
    _CRT_RAND_S
    CERT_CHAIN_PARA_HAS_EXTRA_FIELDS
    WIN32_LEAN_AND_MEAN
    _ATL_NO_OPENGL
    _HAS_EXCEPTIONS=0
    _SECURE_ATL
    CHROMIUM_BUILD
    TOOLKIT_VIEWS=1
    USE_AURA=1
    USE_ASH=1
    USE_DEFAULT_RENDER_THEME=1
    USE_LIBJPEG_TURBO=1
    USE_MOJO=1
    ENABLE_ONE_CLICK_SIGNIN
    ENABLE_REMOTING=1
    ENABLE_WEBRTC=1
    ENABLE_PEPPER_CDMS
    ENABLE_CONFIGURATION_POLICY
    ENABLE_INPUT_SPEECH
    ENABLE_NOTIFICATIONS
    ENABLE_HIDPI=1
    ENABLE_EGLIMAGE=1
    __STD_C
    _CRT_SECURE_NO_DEPRECATE
    _SCL_SECURE_NO_DEPRECATE
    NTDDI_VERSION=0x06020000
    _USING_V110_SDK71_
    ENABLE_TASK_MANAGER=1
    ENABLE_EXTENSIONS=1
    ENABLE_PLUGIN_INSTALLATION=1
    ENABLE_PLUGINS=1
    ENABLE_SESSION_SERVICE=1
    ENABLE_THEMES=1
    ENABLE_AUTOFILL_DIALOG=1
    ENABLE_BACKGROUND=1
    ENABLE_AUTOMATION=1
    ENABLE_GOOGLE_NOW=1
    CLD_VERSION=2
    ENABLE_FULL_PRINTING=1
    ENABLE_PRINTING=1
    ENABLE_SPELLCHECK=1
    ENABLE_CAPTIVE_PORTAL_DETECTION=1
    ENABLE_APP_LIST=1
    ENABLE_SETTINGS_APP=1
    ENABLE_MANAGED_USERS=1
    ENABLE_MDNS=1
    ENABLE_SERVICE_DISCOVERY=1
    USING_CEF_SHARED
    __STDC_CONSTANT_MACROS
    __STDC_FORMAT_MACROS
    DYNAMIC_ANNOTATIONS_ENABLED=1
    WTF_USE_DYNAMIC_ANNOTATIONS=1

    10. C/C++下代码生成中,运行库改为“多线程调试MTD”

    11. 链接器,常规,附加库目录为: 
    因为是VS2015,这个会与VS2013的配置有区别

    C:Program Files (x86)Windows Kits10Lib10.0.10150.0ucrtx86
    %(AdditionalLibraryDirectories)

    12. 链接器,输入,内容如下:

    wininet.lib
    dnsapi.lib
    version.lib
    msimg32.lib
    ws2_32.lib
    usp10.lib
    psapi.lib
    dbghelp.lib
    winmm.lib
    shlwapi.lib
    kernel32.lib
    gdi32.lib
    winspool.lib
    comdlg32.lib
    advapi32.lib
    shell32.lib
    ole32.lib
    oleaut32.lib
    user32.lib
    uuid.lib
    odbc32.lib
    odbccp32.lib
    delayimp.lib
    credui.lib
    netapi32.lib
    comctl32.lib
    rpcrt4.lib
    opengl32.lib
    glu32.lib
    D:	estTestLibCefTestLibCefdlllibcef_dll_wrapper.lib
    D:	estTestLibCefTestLibCefdlllibcef.lib

    13. 链接器,高级,如下图: 
    这里写图片描述

    14. 编译生成项目,将dll文件夹中的所有内容拷贝到debug或release文件夹下。

    最后完成。

    ============================================================== 
    不出意外,你的程序不会生成成功,会提示C2220错误,你可能Google或是百度,很多人告诉你把警告等级调低,这根本还是解决不了问题。而且良好的编程习惯都是把警告当做错误看待的。

    其实可以这样解决问题:

    关闭VS2015; 
    打开VS2015软件(不点击任何解决方案); 
    选择 文件 ->打开 ->项目, 找到之前建立的TestLibCef的sln文件。

    成功!! 
    至于原因: 
    原来文件的代码页为英文,而我们使用的是中文系统。仅此而已。

    ================================================================ 
    很少有人会用纯win32的应用程序,都是采用一些库。接下来将描述,如何在duilib中配置libcef的环境。

  • 相关阅读:
    docker compose示例
    mysql表分区案例
    mysql表分区实战
    mysql分表
    MongoDB基础教程系列--目录结构
    如何优化Mysql千万级快速分页,limit优化快速分页,MySQL处理千万级数据查询的优化方案
    网站性能压力测试工具--apache ab使用详解
    tomcat8 JVM 优化
    tomcat8 性能优化
    redis.properties
  • 原文地址:https://www.cnblogs.com/visio/p/6295451.html
Copyright © 2011-2022 走看看