re: What's the guidance on when to use rundll32? Easy: Don't use it
[Your question is about using an existing DLL designed for rundll32. -Raymond]How does this statement interact with your comment to not use rundll32, since it's been deprecated? Will printui.dll be...
View Articlere: A few stray notes on Windows patching and hot patching
re:"MS should make it more prominent which KBs support hotpatching. It is an under-used feature."It's not under-used, we don't use it (well, haven't really). Not all fixes are hot-patchable, and it...
View Articlere: What's the guidance on when to use rundll32? Easy: Don't use it
Looks like Raymond has written the definitive guidance for rundll32. I could not find any useful information in a couple of minutes of searching for the answer. The top hit was a very out-of-date...
View Articlere: What's the guidance on when to use rundll32? Easy: Don't use it
@Rick C "How does this statement interact with your comment to not use rundll32, since it's been deprecated? Will printui.dll be rewriten/replaced?"Two different things entirely.1. If you a developer...
View Articlere: Understanding the classical model for linking, groundwork: The algorithm
This first linkers I used baack in the early 80's were even simpler than this classical model: they would only make a single pass through the LIB files and if anything was undefined, they'd indicate...
View Articlere: Understanding the classical model for linking, groundwork: The algorithm
Another non-classical behavior: weak symbols vs. strong symbols. Symbols are strong by default and can be marked as weak with the __attribute__((weak)) syntax in GCC and GCC-like compilers (I'm unsure...
View Articlere: Understanding the classical model for linking, groundwork: The algorithm
@Adam You may find this interesting RE MSVC behaviour: stackoverflow.com/.../gcc-style-weak-linking-in-visual-studio (There's a neat answer using an undocumented linker pragma).
View Articlere: Understanding the classical model for linking, groundwork: The algorithm
While we're still at groundwork, let's make it explicit: "symbols" to a classical linker are just functions and variables. Constants already get tricky.Personally the most surprising thing was the fact...
View Articlere: If NTFS is a robust journaling file system, why do you have to be careful...
Raymond: "Write-behind caching is disabled by default on removable drives. You get into this mess only if you override the default."xpclient: "I checked that same drive on XP/Vista/7/8 and XP blocks...
View Articlere: What's the guidance on when to use rundll32? Easy: Don't use it
@Gechurch not only that, but if PrintUIEntry is written properly it should be a pretty simple matter to write a program to call it instead of using rundll32: just write a short main function that...
View Articlere: Understanding the classical model for linking, groundwork: The algorithm
Isn't there something in the classical model where a later .LIB cannot reference an .OBJ in an earlier .LIB?
View Articlere: Understanding the classical model for linking, groundwork: The algorithm
What is the use-case for __select_any? I've written C/C++ for years, and I can't for the life of me think of a good reason for it, other than to introduce non-deterministic bugs to your build.[The C++...
View Articlere: Understanding the classical model for linking, groundwork: The algorithm
Ok - according to the MSDN documentation:"A global data item can normally be initialized only once in an EXE or DLL project. selectany can be used in initializing global data defined by headers, when...
View Articlere: Understanding the classical model for linking, groundwork: The algorithm
@Matt: I wouldn't have dared use it for variables as the compiler is allowed to direct-bind within an .OBJ file, but for functions declared in header files nothing can really go wrong.
View Articlere: Understanding the classical model for linking, groundwork: The algorithm
>"symbols" to a classical linker are just functions and variables. Constants already get tricky.From what I recall, that's not true. A constant is just an absolute symbol, a variable is a...
View Articlere: Understanding the classical model for linking, groundwork: The algorithm
@Matt:The thing that made selectany necessary I suspect was templates. (I'm familiar with a mechanism of similar description to selectany but am not familiar enough with MSVC specifically to know if...
View Articlere: If NTFS is a robust journaling file system, why do you have to be careful...
Raymond, I think the confusion arose because your first sentence says you need to do X to enable formatting as NTFS, while later on you talk about the write-behind cache. Frankly, I'm still confused,...
View Articlere: Understanding the classical model for linking, groundwork: The algorithm
@Evan: In MSVC __inline or __forceinline functions don't get external linkage - they get immediately inlined during compilation of the function. I use __forceinline functions in headers all the time...
View Articlere: Understanding the classical model for linking, groundwork: The algorithm
I was always wondering why the linker first links everything and then eliminates unused instead doing it the other way around - starting from a known entry point and then adding only referred...
View Articlere: If NTFS is a robust journaling file system, why do you have to be careful...
@Matt: "Yes. Sparse files."You didn't read my entire post? Let me quote the relevant part: "Sparse Files were obviously counterproductive to the goal of avoiding fragmentation :)"
View Article