⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cygwin_dll.h

📁 cygwin, 著名的在win32下模拟unix操作系统的东东
💻 H
字号:
/* cygwin_dll.h   Copyright 1998, 1999, 2000, 2001 Red Hat, Inc.This file is part of Cygwin.This software is a copyrighted work licensed under the terms of theCygwin license.  Please consult the file "CYGWIN_LICENSE" fordetails. */#ifndef __CYGWIN_CYGWIN_DLL_H__#define __CYGWIN_CYGWIN_DLL_H__#include <windows.h>#ifdef __cplusplus#define CDECL_BEGIN extern "C" {#define CDECL_END }#else#define CDECL_BEGIN#define CDECL_END#endif#define DECLARE_CYGWIN_DLL(Entry)					      \									      \CDECL_BEGIN								      \  int WINAPI Entry (HINSTANCE h, DWORD reason, void *ptr);	              \  typedef int (*mainfunc) (int, char **, char **);			      \  extern int cygwin_attach_dll (HMODULE, mainfunc);			      \  extern void cygwin_detach_dll (DWORD);				      \CDECL_END								      \									      \static HINSTANCE storedHandle;						      \static DWORD storedReason;						      \static void* storedPtr;							      \									      \static int __dllMain (int a, char **b, char **c)			      \{									      \  return Entry (storedHandle, storedReason, storedPtr);		              \}									      \									      \static DWORD dll_index;							      \									      \int WINAPI _cygwin_dll_entry (HINSTANCE h, DWORD reason, void *ptr)	      \{									      \  int ret;								      \  ret = 1;								      \									      \  switch (reason)							      \  {									      \    case DLL_PROCESS_ATTACH:						      \    {									      \      storedHandle = h;							      \      storedReason = reason;						      \      storedPtr = ptr;							      \      dll_index = cygwin_attach_dll (h, &__dllMain);			      \      if (dll_index == (DWORD) -1)					      \	ret = 0;							      \    }									      \    break;								      \									      \    case DLL_PROCESS_DETACH:						      \    {									      \      ret = Entry (h, reason, ptr);					      \      if (ret)								      \      {									      \	cygwin_detach_dll (dll_index);					      \	dll_index = (DWORD) -1;						      \      }									      \    }									      \    break;								      \									      \    case DLL_THREAD_ATTACH:						      \    {									      \      ret = Entry (h, reason, ptr);					      \    }									      \    break;								      \									      \    case DLL_THREAD_DETACH:						      \    {									      \      ret = Entry (h, reason, ptr);					      \    }									      \    break;								      \  }									      \  return ret;								      \}									      \									      \/* OBSOLETE: This is only provided for source level compatibility. */         \int WINAPI _cygwin_noncygwin_dll_entry (HINSTANCE h, DWORD reason, void *ptr) \{									      \  return _cygwin_dll_entry (h, reason, ptr);				      \}									      \#endif /* __CYGWIN_CYGWIN_DLL_H__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -