查看chrome.exe的以来文件可以得到下面这个列面,大部分是在%systemroot%/system32下面的系统dll文件,只有两个是chromium自己生成的:base.dll, content.dll

SHLWAPI.dll      =======> Win
KERNEL32.dll    =======> Win
base.dll             ***** Chromium
content.dll        ***** Chromium
MSVCP100D.dll  =======> Win
MSVCR100D.dll  =======> Win
USERENV.dll       =======> Win
WTSAPI32.dll     =======> Win
ADVAPI32.dll     =======> Win
USER32.dll        =======> Win
SHELL32.dll       =======> Win
ole32.dll            =======> Win
OLEAUT32.dll     =======> Win

关于编译器对于C/C++函数的修饰,参见http://silverw0396.iteye.com/blog/90690

base.dll依赖的都是windows系统提供的dll,但是content.dll会依赖很多chromium自己生成的dll。

还能看到chrome.exe的入口函数式wWinMain, 在chrome/app/chrome_exe_main_win.cc文件里面。

wWinMain->RunChrome:MainDllLoader* loader = MakeMainDllLoader(); 会加载chrome.dll并拿到它的entry_point。

entry_point就是chrome.dll的ChromeMain函数,会直接call content::ContentMain.

05-22 14:05