You will be on board if you answer this...
-
You may be right, but on the other hand I can compile any code into a dll, so does a "main()" method, but still it won't execute! ;P
Regards Vallarasu S | BreakingDotNet.blogspot.com
Yes it will, if you know the magic words (or command).
CEO at: - Rafaga Systems - Para Facturas - Modern Components for the moment...
-
In an interview an year ago I was asked with this question. When you can 'Run' an exe file, why can't a 'dll'? :confused::confused::confused: I was speechless and said 'it was not intended to be' but to no avail. It was clear the interview panel wasn't prepared for interviewing and I managed to to get the interviewers answer! Wait! What would you answer if such question was fired at you?
Coz, it does not have a main method - He said!
If i asked this question i would expect this answer: "Both CAN be run, usually a DLL is intended to be used inside another program, that's why normally you don't run a dll directly." But an acceptable answer will be: "DLLs are intended to be used inside programs, while EXEs are programs themselves"
CEO at: - Rafaga Systems - Para Facturas - Modern Components for the moment...
-
VallarasuS wrote:
Wait! What would you answer if such question was fired at you?
Probably the answer they were looking for: An exe requires a fixed entry point, so the loader can work out where start execution. A dll lacks this entry point and therefore the loader can't work out where to start. Other than that, I don't think there are any important differences between an exe and dll, though I could be wrong about that.
Sort of a cross between Lawrence of Arabia and Dilbert.[^]
-Or-
A Dead ringer for Kate Winslett[^] -
In an interview an year ago I was asked with this question. When you can 'Run' an exe file, why can't a 'dll'? :confused::confused::confused: I was speechless and said 'it was not intended to be' but to no avail. It was clear the interview panel wasn't prepared for interviewing and I managed to to get the interviewers answer! Wait! What would you answer if such question was fired at you?
Coz, it does not have a main method - He said!
Also, a DLL doesn't have its own stack, by default. An exe does.
-
In an interview an year ago I was asked with this question. When you can 'Run' an exe file, why can't a 'dll'? :confused::confused::confused: I was speechless and said 'it was not intended to be' but to no avail. It was clear the interview panel wasn't prepared for interviewing and I managed to to get the interviewers answer! Wait! What would you answer if such question was fired at you?
Coz, it does not have a main method - He said!
On Windows, there are cases where you can run a function in a dll with rundll32.exe if the function's takes no args and its return type is void. In other words, the function needs to be as much of a standalone as an exe file. For example, in Powersell, PS> rundll32.exe advapi32.dll,ProcessIdleTasks PS> rundll32.exe user32.dll,LockWorkStation
-
In an interview an year ago I was asked with this question. When you can 'Run' an exe file, why can't a 'dll'? :confused::confused::confused: I was speechless and said 'it was not intended to be' but to no avail. It was clear the interview panel wasn't prepared for interviewing and I managed to to get the interviewers answer! Wait! What would you answer if such question was fired at you?
Coz, it does not have a main method - He said!
I confess I didn't read the tag line either. There's a bit of a problem with the semantics of the statement too. I'd agree that you can't start an execution from a dll (from other comments, I'd be wrong about that too, but don't know how), but you definitely do run dll code.
-
In an interview an year ago I was asked with this question. When you can 'Run' an exe file, why can't a 'dll'? :confused::confused::confused: I was speechless and said 'it was not intended to be' but to no avail. It was clear the interview panel wasn't prepared for interviewing and I managed to to get the interviewers answer! Wait! What would you answer if such question was fired at you?
Coz, it does not have a main method - He said!
Well.. technically, if it is the right kind of DLL, you can.. using rundll32.exe (which has been included in at least the last few versions of windows). It lets you execute any entry-point style (think WinMain signature) named code symbol. I guess it was easier for M$ to write a few DLL's with many functions, rather than dozens (or hundreds/thousands) of individual linked EXE's, each for a specific purpose.
-
On Windows, there are cases where you can run a function in a dll with rundll32.exe if the function's takes no args and its return type is void. In other words, the function needs to be as much of a standalone as an exe file. For example, in Powersell, PS> rundll32.exe advapi32.dll,ProcessIdleTasks PS> rundll32.exe user32.dll,LockWorkStation
-
No, they can take args using similar parameters to what WinMain() does. Just that some functions don't use them.
void CALLBACK
EntryPoint(HWND hwnd, HINSTANCE hinst, LPSTR lpszCmdLine, int nCmdShow);How would you use rundll32.exe to run that function then?
-
How would you use rundll32.exe to run that function then?
-
In an interview an year ago I was asked with this question. When you can 'Run' an exe file, why can't a 'dll'? :confused::confused::confused: I was speechless and said 'it was not intended to be' but to no avail. It was clear the interview panel wasn't prepared for interviewing and I managed to to get the interviewers answer! Wait! What would you answer if such question was fired at you?
Coz, it does not have a main method - He said!
rundll32.exe, although there are no guarantees that it will work (depending on the DLL's entry points)
-- Kein Mitleid Für Die Mehrheit