gentlemen: I made an ATL project by following an example in a book named ATL Developer's Guide. This project needs a Proxy/Stub DLL, and the book tell me this: by using following debug command I can get this Proxy/Stub DLL ------------------------------------------------------------------------------ nmake -f serverps.mk ----------------------------------------------------------------------------- My question is, how to run this command, and get the Proxy/Stub DLL as a result. More information: OS: Wnd2k IDE: VC++6.0 Example source: 4.13.8 step 8 debug and register Proxy/Stub DLL author: Tom Armstrong, Ron Patton etc. Book name: ATL Developer's Guide, 2nd Edition Best regard. One concrete prolem is worth a thousand unapplied abstractions.
NicholasCougar
Posts
-
proxy/Stub in ATL -
SetDlgMsgResultHi, I have checked the preface of this book. It's named Window95, a developer's guide written by Jeffrey before 1997. It's a Win32 SDK programming guide which includes several key techniques such as subclassing and superclassing, hooking etc. Best regard. One concrete prolem is worth a thousand unapplied abstractions.
-
SetDlgMsgResultHi, Nish [BusterBoy] wrote: There is no API or MFC call named SetDlgMsgResult. SetDlgMsgResult seems to be one of Richter's custom functions too Following words are copied from MSDN. I have to declare that I've installed SDK in my system. SetDlgMsgResult This macro maps to the SetWindowLong function.
SetDlgMsgResult (
HWND hwnd,
int msg,
LONG result );Parameters hwnd: Handle to the dialog box. msg:Specifies the zero-based offset to the value to be set. Valid values are in the range zero through the number of bytes of extra window memory, minus four. result:Specifies the replacement value. In my point of view, the value of parameter result is used to set the parameter msg. But set value in this way(set to an zero-based offset) is strange to me. I want thorough understanding of this function. Thank you, Best regard. One concrete prolem is worth a thousand unapplied abstractions.
-
SetDlgMsgResultHi, How to use the function SetDlgMsgResult ? The follows are an example, but I can't understand their meaning,
#define adgHANDLE\_DLGMSG(hwnd, message, fn) case (message): return (SetDlgMsgResult(hwnd, uMsg, HANDLE\_##message((hwnd), (wParam), (lParam), (fn))))
Jeffrey Richter said: The normal HANDLE_MSG macro in WINDOWSX.H does not work properly for dialog boxes because DlgProc's return a BOOL instead of an LRESULT (like WndProcs). This adgHANDLE_DLGMSG macro corrects the problem. My Question is, the parameter list in SetDlgMsgResult(HWND hwnd, int msg, LONG result) puzzles me. Which parameter replaces which parameter, and where does this action take place, in memory of window? Thank you. Best regard. One concrete prolem is worth a thousand unapplied abstractions.
-
type castingHi, Look at the code below
#define MAKEINTRESOURCE(i) (LPTSTR) ((DWORD) ((WORD) (i)))
If it's a type casting, I feel it's terrible. My question is: Inside memory, what the variable i look like after this terrible type casting Any information concerned is appreciated. Thank you Best regard. I confess that I am a stubborn guy, but why not put things thoroughly, logically and systematically clean. One concrete prolem is worth a thousand unapplied abstractions.
-
adgHANDLE_DLGMSG???Hi, You are right!!! Following is the Macro Jeffrey Richter wrote. // The normal HANDLE_MSG macro in WINDOWSX.H does not work properly for dialog // boxes because DlgProc's return a BOOL instead of an LRESULT (like // WndProcs). This adgHANDLE_DLGMSG macro corrects the problem: #define adgHANDLE_DLGMSG(hwnd, message, fn) \ case (message): return (SetDlgMsgResult(hwnd, uMsg, \ HANDLE_##message((hwnd), (wParam), (lParam), (fn)))) And this Macro is collected in Win95adg.h which is included in source file. Thank you Best regard. I confess that I am a stubborn guy, but why not put things thoroughly, logically and systematically clean. One concrete prolem is worth a thousand unapplied abstractions.
-
adgHANDLE_DLGMSG???Hi, The follows are another copy from Programming Application for Microsoft Windows, Fourth Edition . There is a function similar with the previous one: chHANDLE_DLGMSG By now, I have not found any function defined as chHANDLE_DLGMSG in source file.
INT_PTR WINAPI Dlg_Proc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
chHANDLE_DLGMSG(hwnd, WM_INITDIALOG, Dlg_OnInitDialog);
chHANDLE_DLGMSG(hwnd, WM_TIMER, Dlg_OnTimer);
chHANDLE_DLGMSG(hwnd, WM_COMMAND, Dlg_OnCommand);
}
return (FALSE);
}Best regard. I confess that I am a stubborn guy, but why not put things thoroughly, logically and systematically clean. One concrete prolem is worth a thousand unapplied abstractions.
-
adgHANDLE_DLGMSG???Hi, I am reading Window95: A Developer's Guide and encounter a function in Dialog box procedure function.
switch(uMsg){
adgHANDLE_DLGMSG(hwnd, WM_INITDIALOG, keyCount_OnCommand);
...
}My question is, I can't find the function adgHANDLE_DLGMSG in WIN32 API, why??? Best regard. I confess that I am a stubborn guy, but why not put things thoroughly, logically and systematically clean. One concrete prolem is worth a thousand unapplied abstractions.
-
break vs continueHi, the difference between loop and iteration? Regard Best regard. I confess that I am a stubborn guy, but why not put things thoroughly, logically and systematically clean. One concrete prolem is worth a thousand unapplied abstractions.
-
break vs continueHi, Any one can explain the difference between break and continue? Regard Best regard. I confess that I am a stubborn guy, but why not put things thoroughly, logically and systematically clean. One concrete prolem is worth a thousand unapplied abstractions.
-
what happpened when castingHi, suppose there are to struct type, struct small { float x; double y; }; struct large { int x; float y; double z; bool w; }; and in my program I coding as this: large b; small *p =(small) b; what's going on inside the code operation? Thank you. Best regard. I confess that I am a stubborn guy, but why not put things thoroughly, logically and systematically clean. One concrete prolem is worth a thousand unapplied abstractions.
-
Look at this horrible castingCan you explain the code for me in detail? I mean word by word. Thank you. Best regard. I confess that I am a stubborn guy, but why not put things thoroughly, logically and systematically clean. One concrete prolem is worth a thousand unapplied abstractions.
-
Look at this horrible castingHi, Look at this nasty type casting. any one can help?
(AFX_PMSG)(AFX_PMSGW)(int (AFX_MSG_CALL CWnd::*)(LPCREEATESTRUCT))OnCreate
note:
typedef void (AFX_MSG_CALL CCmdTarget::*AFX_PMSG)(void);
These codes come from MessageMapping and Message Rounting. Thank you. Best regard. I confess that I am a stubborn guy, but why not put things thoroughly, logically and systematically clean. One concrete prolem is worth a thousand unapplied abstractions.
-
DLL and TLSHi, I have three questions, 1.What happens when several threads use the same DLL? 2.race condition takes place during above situation? 3.The usage of TLS in thread and DLL. Plz in detail. Thank you. Best regard. I confess that I am a stubborn guy, but why not put things thoroughly, logically and systematically clean. One concrete prolem is worth a thousand unapplied abstractions.
-
Call back functionHi, call back function is said to be called by Operation system only. I want to make a call back funtion myself and control the time and place it is called. Can I make it? Would you please append an example ? Thank you. Best regard. One concrete prolem is worth a thousand unapplied abstractions.
-
the use of call backHi, call back function is said to be called by Operation system only. I want to make a call back funtion and control the time and place it is called. Can I make it? Would you please append an example ? Thank you. Best regard. I confess that I am a stubborn guy, but why not put things thoroughly, logically and systematically clean. One concrete prolem is worth a thousand unapplied abstractions. Best regard. I confess that I am a stubborn guy, but why not put things thoroughly, logically and systematically clean. One concrete prolem is worth a thousand unapplied abstractions.
-
call backHi, call back function is said to be called by Operation system only. I want to make a call back funtion and control the time and place it is called. Can I make it? Would you please append an example ? Thank you. Best regard. I confess that I am a stubborn guy, but why not put things thoroughly, logically and systematically clean. One concrete prolem is worth a thousand unapplied abstractions.
-
NULL is not recognized!!!!Hi, I am practice RTTI excerices and encounter such a debug result.
struct NCL_Runtime CVehicle::structCVehicle=
{szCVehicle, sizeof(CVehicle), 0xffff, NULL, NULL};debug result is
J:\pearl\Sim02\Vehicle.cpp(16) : error C2065: 'NULL' : undeclared identifier
Plz tell me WHY?????? Best regard. I confess that I am a stubborn guy, but why not put things thoroughly, logically and systematically clean. One concrete prolem is worth a thousand unapplied abstractions.
-
backslashHi, I encounter such a problem as the usage of backslash '\' , follows are details
syntax
textline\For example,
#define DECLARE_DYNAMIC(class_name)\
public: \
static CRuntimeClass class##class_name; \
virtual CRuntimeClass *GetRuntimeClass() const;What does '\' mean here? Thank you in advance. Best regard. One concrete prolem is worth a thousand unapplied abstractions.
-
C/C++ compilerHi, I am reading some books on C++ and MFC. It seems to me that without a solid understanding of C/C++ compiler, mastering C++ and MFC is a mission imposible. For example, CRuntimeClass, Message Map and RTTI etc. Any information on how and where to get materials on C/C++ compiler is greatly appreciated. Thank you in advance. Best regard. I confess that I am a stubborn guy, but why not put things thoroughly, logically and systematically clean. One concrete prolem is worth a thousand unapplied abstractions.