Re: When were scanf_s functions introduced?
- From: "Skywing" <skywing_NO_SPAM_@xxxxxxxxxxxxxxxxxxx>
- Date: Fri, 10 Mar 2006 21:33:44 -0500
Yes, that's about how static linking works. There are a few downsides
though:
- Increased memory usage (if you run two apps with the CRT static linked
instead of two apps with the CRT dynamic linked, then you might be
increasing physical commit as the CRT code inside the DLL could be
copy-on-write shared cross process while the static linked CRT code can't be
shared in memory between different .exes (although it could be for different
processes running from the same .exe on disk).
- Requires you to recompile your app if there is a security patch for the
CRT and you static linked to an affected function (instead of just deploying
another CRT DLL).
- When working with multiple binaries that link to the CRT, you may actually
end up saving space by linking to the DLL version if the CRT code is
duplicated enough times.
If you are just making a simple, small standalone app, then static linking
is probably a good idea. For nontrivial apps I would go with the DLL route
though.
"Mitch Gallant" <jensigner@xxxxxxxxxxxxxxxx> wrote in message
news:uMECVNIRGHA.4344@xxxxxxxxxxxxxxxxxxxxxxx
The DLL version required to support security-enhanced fucntions is
MSVCR80.dll which is 612 kb in size.
I relinked statically (/MT) which statically links in libcmt.lib (about
7.4 Mb).
However the resultant apps (which are not very big) amount to
about 100 kb ; e.g. this file hasher utility
http://www.jensign.com/hash/index.html
I don't have a good understanding of how static linking works with obj
.dll
libraries but I gather it just extracts the code from the static CRT
library that
is referenced in the application (hence my resultant code is still small )
?
Thanks,
- Mitch
"Skywing" <skywing_NO_SPAM_@xxxxxxxxxxxxxxxxxxx> wrote in message
news:eVoz2bHRGHA.336@xxxxxxxxxxxxxxxxxxxxxxx
I would just redistribute the DLL version of the CRT. VC2005 comes with a
prepackaged installer and merge modules for it, I believe.
"Mitch Gallant" <jensigner@xxxxxxxxxxxxxxxx> wrote in message
news:OJnLX3GRGHA.196@xxxxxxxxxxxxxxxxxxxxxxx
Thanks. So I guess I need to recompile with /MT to static
link code into my application to ensure backward compatiblity.
- Mitch
"Skywing" <skywing_NO_SPAM_@xxxxxxxxxxxxxxxxxxx> wrote in message
news:eEh$qqGRGHA.4572@xxxxxxxxxxxxxxxxxxxxxxx
Yes unless somebody else has already installed MSVCR80.dll.
"Mitch Gallant" <jensigner@xxxxxxxxxxxxxxxx> wrote in message
news:uS1GA6FRGHA.256@xxxxxxxxxxxxxxxxxxxxxxx
(a bit rusty on VC++ here ..)
I was looking at my compile options in VS 2005 and the /MD switch
is used for release by default. Does this mean that if I compile my
C code in VS 2005 with the default /MD compile switch, and specify
scanf_s() functions, the target platform will need updated dll
(MSVCR80.dll)
with those functions since the CRT is not statically linked into my
application?
http://msdn2.microsoft.com/en-us/library/abx4dbyh.aspx
Thanks,
- Mitch
"Skywing" <skywing_NO_SPAM_@xxxxxxxxxxxxxxxxxxx> wrote in message
news:uVxeG5ERGHA.4344@xxxxxxxxxxxxxxxxxxxxxxx
They ship with the VS2005 CRT (and probably later CRTs). They were
not present in the VS2003 (or earlier) CRTs.
"Mitch Gallant" <jensigner@xxxxxxxxxxxxxxxx> wrote in message
news:uNz0KsERGHA.4960@xxxxxxxxxxxxxxxxxxxxxxx
When were the security-enhanced functions, like scanf_s, sscanf_s
etc. introduced?
I noticed that they are not included in the PSDK April 2005 MSDN
documentation,
but are included in VS 2005 docs.
- Mitch
.
- Follow-Ups:
- Re: When were scanf_s functions introduced?
- From: Jean-Marc Desperrier
- Re: When were scanf_s functions introduced?
- From: Mitch Gallant
- Re: When were scanf_s functions introduced?
- References:
- When were scanf_s functions introduced?
- From: Mitch Gallant
- Re: When were scanf_s functions introduced?
- From: Skywing
- Re: When were scanf_s functions introduced?
- From: Mitch Gallant
- Re: When were scanf_s functions introduced?
- From: Skywing
- Re: When were scanf_s functions introduced?
- From: Mitch Gallant
- Re: When were scanf_s functions introduced?
- From: Skywing
- Re: When were scanf_s functions introduced?
- From: Mitch Gallant
- When were scanf_s functions introduced?
- Prev by Date: Re: Export Public/Private Keys
- Next by Date: Re: When were scanf_s functions introduced?
- Previous by thread: Re: When were scanf_s functions introduced?
- Next by thread: Re: When were scanf_s functions introduced?
- Index(es):
Relevant Pages
|