- 主题:程序能只引用另一项目DLL编译吗?
c runtime
肯定链接到它了,只是你没感觉到。
因为不明确指定dll/exe的entry point的话,vc compiler默认就是链接到它自带的exe/dll startup code,也就是_CRTMainStartup()之类的实现代码。
如果明确指定dll/exe的entry point,是可以不用vc提供的CRT的,但需要自己实现printf()之类的函数。
printf()之类的函数由vcruntime140.dll(对应的vs2019)之类的提供,这个dll对应的静态lib代码如果链接到你的dll/exe,就称为静态链接到CRT,否则就是动态链接到CRT,需要分发这个dll。
CRT = 编译器提供的代码 = startup code + vcruntime140.dll的代码
【 在 one4all4one 的大作中提到: 】
: CRT是什么?我现在没链接到它呀
:
: #发自zSMTH@一代鸡皇水果iPhone 250 MAX
--
修改:z16166 FROM 125.35.124.*
FROM 125.35.124.*
谢谢解释,我用应该是没用到它。由于是二次开发,有自动的加载和卸载函数。我只需要往里面填代码即可。
我的其他所有功能wrap成一个主函数,放在目标程序的加载函数中调用了一下。不过看你的描述,目标函数或许自己实现了CRT的一些功能,因为它也有个日志窗口,可以往里面print东西,但是必须用它提供的写日志函数才可以。
【 在 z16166 @ [CPlusPlus] 的大作中提到: 】
:
: c runtime
:
: 肯定链接到它了,只是你没感觉到。
:
#发自zSMTH@一代鸡皇水果iPhone 250 MAX
--
FROM 82.19.154.*
此帖当m
【 在 z16166 () 的大作中提到: 】
: VC生成的有两种lib,
: 一种是静态lib(包含全部代码和链接信息);
: 一种只是用来导入dll函数的lib(包含链接信息,无代码)。
:
--
FROM 138.19.103.*
好~
【 在 fanci (大葡萄) 的大作中提到: 】
: 此帖当m
--
FROM 114.84.111.*