����Linux�Ż�
Linux����

Linux�о����ʲô��

����ʱ��:2016-11-27 09:33:38��Դ:linux��վ����:����������
����������һ��32λ��������ʵ������windows���ڴ���ά����һ�����󣨴��ڵȣ��ڴ�������ַ�б�������������
ָ�룺ָ���Ӧ��һ���������ڴ��еĵ�ַ���õ���ָ��Ϳ������ɵ��޸ĸ����ݡ�
����Linux����Ӧ���ƣ���û��ͳһ�ľ�����ͣ��������͵�ϵͳ��Դ�ɸ��Ե���������ʶ���ɸ��ԵĽӿڲ�������
����Ӳ���ϵ���Դ�����ڴ��Ժ󣬽���һ�����ָ���������Ǿ��ֻ��ָ��һ����Դ�����Ҿ��֪����ָ���ڴ��ж�󡣻���ָ�룬ָ��ָ���ַ������֪��������ڴ��ж�� 
��������㶨��һ�������Ȼ����VC�����һ���꣬ѡ��"go to definition of handle”����ᷢ�����ı��ʾ���һ��ָ�룬�����������ò�ͬ��ָ�롣����ͨ�������ϵ�ָ����������ġ����������ָ���˼�룬�������߼��ص㣬��û �������������ܡ������WINDOWS��������ڵ���Դ��Ψһ��ʶ,��һ��������
 
һ�����϶��壺
<<Microsoft Windows 3 Developer''s Workshop>>(Microsoft Press,by Richard Wilton)
��Windows�����У������������ʶ��Ŀ�ģ���Щ��Ŀ������ģ��(module)������(task)��ʵ�� (instance)���ļ�(file)���ڴ��(block of memory)���˵�(menu)������(control)������(font)����Դ(resource)������ͼ��(icon)����� (cursor)���ַ���(string)�ȡ�GDI����(GDI object)������λͼ(bitmap)����ˢ(brush)��Ԫ�ļ���metafile��,��ɫ��(palette)������(pen)������(region)���Լ��豸������(device context)�� 
<<WINDOWS��̶�ƽ��>>(�Ͼ���ѧ������)��
�����WONDOWS������ʶ��Ӧ�ó�����������ʹ�õĶ����Ψһ������WINDOWSʹ�ø��ָ����ľ����ʶ����Ӧ�ó���ʵ�������ڣ����ƣ�λͼ��GDI����ȵȡ�WINDOWS����е���C�����е��ļ������
 
����MFCԴ���룺
#ifdef STRICT
typedef void *HANDLE;
#define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name
#else
typedef PVOID HANDLE;
#define DECLARE_HANDLE(name) typedef HANDLE name
#endif
DECLARE_HANDLE(HMODULE); 
DECLARE_HANDLE(HINSTANCE); 
DECLARE_HANDLE(HLOCAL); 
DECLARE_HANDLE(HGLOBAL); 
DECLARE_HANDLE(HDC); 
DECLARE_HANDLE(HRGN); 
DECLARE_HANDLE(HWND); 
DECLARE_HANDLE(HMENU); 
DECLARE_HANDLE(HACCEL); 
DECLARE_HANDLE(HTASK); 
 
�������⣺
�����һ��32λ��������ʵ������windows���ڴ���ά����һ�����󣨴��ڵȣ��ڴ�������ַ�б���������������Ϊwindows���ڴ�������� �Ὣ��ǰ���ж�����ڴ��ͷŵ�������Ҫʱ�����������ύ�������洢�����Զ����������ַ�DZ仯�ģ�����������ֱ��ͨ��������ַ�����ʶ��󡣳�������ʵ� ����ľ�����ݸ�ϵͳ��ϵͳ���ݾ�������Լ�ά���Ķ����б�����֪����������ʵĶ�����������ַ�ˡ������һ��ָ��ָ���ָ�롣����֪������νָ����һ ���ڴ��ַ��Ӧ�ó�������������������ĸ���������פ�����ڴ�ġ�����򵥵����⣬�ƺ�����ֻҪ��֪����ڴ���׵�ַ����ô�Ϳ�����ʱ�������ַ���ʶ����ˡ����ǣ��������ô��Ϊ����ô�ʹ���ش��ˡ�����֪��windows��һ�������ڴ�Ϊ�����IJ���ϵͳ������������£�windows�ڴ���������� ���ڴ��������ƶ������Դ����������Ӧ�ó�����ڴ���Ҫ�������ƶ���ζ�����ĵ�ַ�仯�ˡ������ַ������˵ı仯������Ӧ��ȥ�����Ҷ����أ�Ϊ�˽�� ������⣬windows����ϵͳΪ����Ӧ�ó����ڳ�һЩ�ڴ��ַ������ר�ŵǼǸ���Ӧ�ö������ڴ��еĵ�ַ�仯���������ַ���洢��Ԫ��λ�ã������Dz���ġ�windows �ڴ�������ƶ��������ڴ��е�λ�ú󣬰Ѷ����µĵ�ַ��֪��������ַ�����档��������ֻ��Ҫ��ס��������ַ�Ϳ��Լ�ӵ�֪������������ڴ����ĸ�λ���ˡ������ַ���ڶ���װ�أ�load��ʱ��ϵͳ����ģ���ϵͳж��ʱ���ͷŸ�ϵͳ���䲢��ַ���ȶ���----->�����Ŷ������ڴ��еĵ�ַ -------->�������ڴ��еĵ�ַ�����ȶ���----->ʵ�ʶ��󡣵��DZ���ע�⣬����ÿ������������ϵͳ����֤������������ľ���� ��ԭ���ĸ�������������������µ�ȷ��һ�����������ǰѽ����ӰԺ����Ӱ������һ��Ӧ�ó�����������У���ôϵͳ��Ӧ�ó������ľ�����Dz�һ������� ÿ�ε�ӰԺ�����ǵ���Ʊ���Dz�ͬ����λ��һ��������
��ˣ������ָ����ʵ��������Ȼ��ͬ�ĸ��windowsϵͳ�þ䲢���ϵͳ��Դ���þ䲢����ϵͳ��Ϣ����ֻ��Ҫ֪�������������Ȼ��ȥ�����������ˣ�����32bit��uint��ָ������ij�������ڴ�ĵ�ַ���Dz�ͬ�ĸ��
ָ���Ӧ��һ���������ڴ��еĵ�ַ���õ���ָ��Ϳ������ɵ��޸ĸ����ݡ�Windows����ϣ��һ������޸����ڲ����ݽṹ����Ϊ����̫�� ��ȫ������Windows��ÿ��ʹ��GlobalAlloc�Ⱥ����������ڴ�����ָ��һ�����(����������һ��ָ�룬����Ҫֱ�Ӳ�����)��ƽʱ��ֻ���ڵ� ��API����ʱ������������˵��Ҫ�����Ķ��ڴ档������Ҫ��ij���ڴ����ֱ�Ӳ���ʱ������ʹ��GlobalLock��ס����ڴ沢���ָ����ֱ�ӽ��в�����
�����ָ���“ָ��”��ʹ�þ����Ҫ��Ϊ������windows�ڽ����ڴ��ַ�ռ��ƶ�������ڴ�飬�Է�ֹ���̵��ڴ�ռ䱻˺���ķ����Ѷ����ڹ������Ƭ�� 
�����һЩ��������Ҳ����ָ��ָ���ָ�롣��ӵ����ö���windows�����޸Ķ����"����"��ַ�� ��������ֵ�����Ǿ����ֵ�Dz���ġ�
��������ڻ�ô��ڵ�ʱ��ʹ��,ָ����Խ��е��ô���,����ʹ�õĵط���һ��.һ��������,һ��������.
�Ӵ���ָ���ȡ���ھ����GetSafeHwnd();
�Ӵ��ھ����ȡ��ʱ����ָ�룺FromHandle(); 
�Ӵ��ھ����ȡ���ô���ָ�룺 FromHandlePermanent();
��ʵ���߱�û�й�ϵ��ʵ������MFC�ڴ������ڵ�ʱ���ù��Ӻ�����סHCBT_CREATEWND��Ϣ��
Ȼ��ͨ��CWnd::Attach()�����Ѷ���������һ��
�Ժ�Ϳ�����GetSafeHwnd()��FromHandle()��FromHandlePermanent()�������������Ի���õ��ˡ�
MFC֮����Ҫ����������Ҫ��Ϊ��ʹԭ����SDK������̵ı�̱���������ı�̣����е�MFC�Ĵ��ڶ�����һ���ڹ��̺������ڴ��ڹ��̺���� ͨ�����ھ��(HWND)�ҵ����ڶ���ָ��(CWnd *)�Ӷ�����Ϣ�ַ������ڶ����У������Ժ�Ϳ����ڴ�������ʵ����Ϣ��Ӧ��̴����ˡ�
 
��ע����ô��ھ�����ַ���
1.HWND FindWindow(LPCTSTR lpClassName, LPCTSTR lpWindowName) 
HWND FindWindowEx(HWND hwndParent, HWND hwndChildAfter,LPCTSTR lpClassName, LPCTSTR lpWindowName)
2.HWND WindowFromPoint(POINT& Point)//��õ�ǰ�����λ�õĴ���HWND
3.BOOL CALLBACK EnumChildProc(HWND hwnd,LPARAM lParam)
BOOL CALLBACK EnumChildWindows(HWND hWndParent, WNDENUMPROC lpEnumFunc,LPARAM lParam)
BOOL CALLBACK EnumWindows(WNDENUMPROC lpEnumFunc, LPARAM lParam)
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
 
��Linux��
1.�������һ����ʶ����ֻҪ��ö���ľ�������ǾͿ��ԶԶ����������IJ�����
2.�������ָ�룬����ϵͳ�þ�������ҵ�һ���ڴ棬�����������DZ�ʶ����map��key��Ҳ������ָ�룬������ϵͳ��ô�������ˡ�
fd������ij�̶ֳ����������ɣ�
Linux����Ӧ���ƣ���û��ͳһ�ľ�����ͣ��������͵�ϵͳ��Դ�ɸ��Ե���������ʶ���ɸ��ԵĽӿڲ�����
3.�ڲ���ϵͳ�����ϣ��ļ�����Ҳ��������FILE��һ�������Linux�������ļ�������(FileDescriptor)������Windows��������(Handle)(������û�������ʱ��ͳ��Ϊ���)���û�ͨ��ij���������ļ��Ի�þ�����˺��û������ļ���ͨ���þ�����С�
�����ôһ�������ԭ�����ھ�����Է�ֹ�û������д����ϵͳ�ں˵��ļ�����������Linux����Windows���ļ�������Ǻ��ں˵��ļ�����������ģ�����ι���ϸ���û������ɼ����ں˿���ͨ�������������ں����ļ�����ĵ�ַ�����������������û����š�
�����һ��ʵ�ʵ����ӣ���Linux�У�ֵΪ0��1��2��fd�ֱ������׼���롢��׼����ͱ�׼����������ڳ����д��ļ��õ���fd��3��ʼ������
fd������ʲô��?���ں��У�ÿһ�����̶���һ��˽�е�“���ļ���”���������һ��ָ�����飬ÿһ��Ԫ�ض�ָ��һ���ں˵Ĵ��ļ����󡣶�fd��������������±ꡣ���û���һ���ļ�ʱ���ں˻����ڲ�����һ�����ļ����󣬲�����������ҵ�һ���������һ��ָ�����ɵĴ��ļ����󣬲�������һ����±���Ϊfd����������������ںˣ������û��޷����ʵ�������û���ʹӵ��fd��Ҳ�޷��õ����ļ�����ĵ�ַ��ֻ�ܹ�ͨ��ϵͳ�ṩ�ĺ�����������
��C����������ļ�����������FILE�ṹ����������C�����е�FILE�ṹ�ض���fd��һ��һ�Ĺ�ϵ��ÿ��FILE�ṹ�����¼�Լ�Ψһ��Ӧ��fd��
�ڳ��������,�����һ�����������ָ�롣��һ��Ӧ�ó���Ҫ��������ϵͳ(�����ݿ⡢����ϵͳ )���������ڴ� ������ʱ����Ҫʹ�þ����
�������ָͨ����������ڣ�ָ������������ö�����ڴ��ַ�������������ϵͳ�����������ñ�ʶ���ñ�ʶ���Ա�ϵͳ���¶�λ��һ���ڴ��ַ�ϡ����ּ�ӷ��ʶ����ģʽ��ǿ��ϵͳ�����ö���Ŀ��ơ�
��������80����IJ���ϵͳ����MacOS ��Windows�����ڴ�����У�������㷺Ӧ�á�Unix ϵͳ���ļ�������������Ҳ���ھ�������������滷�� һ����WindowsAPI ����ʹ�þ������ʶϵͳ�еĶ��󣬲���������ϵͳ���û��ռ�֮���ͨ�����������磬�����ϵ�һ��������һ��HWND ���͵ľ������ʶ��
����ڴ�����������������ڴ��㷨ʹ�ø��򵥵�ָ�� �����ܵ���������ָ����һָ����������ܵ��䵭��������ˣ��������ϵͳ��Ȼ��ָ��˽�ж����ָ���Լ����̴��ݸ��ͻ��� ���ڲ������±��Ϊ�����
 
�������ø��µ�ַ��//m.ajphoenix.com/linux/26358.html