Programación de hechizos
%APPDATA% devuelve la ubicación donde se almacenan localmente los datos predeterminados de la aplicación.
%CD% devuelve la cadena del directorio actual localmente.
%CMDCMDLINE% devuelve la línea de comando exacta utilizada para iniciar el Cmd.exe actual localmente.
% cmtextversion% El sistema devuelve el número de versión de la extensión del controlador de comandos actual.
El sistema %COMPUTERNAME% devuelve el nombre del ordenador.
El sistema %COMSPEC% devuelve la ruta exacta del programa ejecutable del intérprete de línea de comando.
El sistema %DATE% devuelve la fecha actual. Utilice el mismo formato que el comando fecha /t. Generado por cmd.exe. Para obtener más información sobre el comando de fecha, consulte Fecha.
%ERRORLEVEL% El sistema devolvió el código de error del comando anterior. Los valores distintos de cero se suelen utilizar para indicar errores.
El sistema %HOMEDRIVE% devuelve la letra de unidad de la estación de trabajo local conectada al directorio de inicio del usuario. Establecido según el valor del directorio de inicio. Los directorios de inicio de usuarios se especifican en usuarios y grupos locales.
%HOMEPATH% El sistema devuelve la ruta completa del directorio de inicio del usuario. Establecido según el valor del directorio de inicio. Los directorios de inicio de usuarios se especifican en usuarios y grupos locales.
El sistema %HOMESHARE% devuelve la ruta de red del * * * directorio de inicio del usuario. Establecido según el valor del directorio de inicio. Los directorios de inicio de usuarios se especifican en usuarios y grupos locales.
%LOGONSERVER% devuelve localmente el nombre del controlador de dominio que autentica la sesión de inicio de sesión actual.
%NUMBER_OF_PROCESSORS% especifica el número de procesadores instalados en el ordenador.
%OS% system devolvió el nombre del sistema operativo. Windows 2000 muestra su sistema operativo como Windows_NT.
El sistema %PATH% especifica la ruta de búsqueda de archivos ejecutables.
El sistema %PATHEXT% devuelve una lista de extensiones de archivos que el sistema operativo considera ejecutables.
El sistema %PROCESSOR_ARCHITECTURE% devuelve la arquitectura del chip del procesador. Valor: x86 o IA64 (basado en Itanium).
% % PROCESADOR _ IDENTIFICADOR % El sistema devolvió la descripción del procesador.
El sistema %PROCESSOR_LEVEL% devuelve el modelo de procesador instalado en el ordenador.
%PROCESSOR_REVISION%El sistema devuelve el número de versión del procesador.
%PROMPT% devuelve localmente la configuración del símbolo del sistema para el intérprete actual. Generado por cmd.exe.
El sistema %RANDOM% devuelve cualquier número decimal entre 0 y 32767. Generado por cmd.exe.
El sistema %SYSTEMDRIVE% devuelve la unidad que contiene el directorio raíz del sistema operativo del servidor Windows (es decir, el directorio raíz del sistema).
El sistema %SYSTEMROOT% devuelve la ubicación del directorio raíz del sistema operativo del servidor Windows.
%TEMP% y %TMP% Sistema y Usuario devuelven los directorios temporales predeterminados utilizados por las aplicaciones disponibles para el usuario actualmente conectado. Algunas aplicaciones requieren TEMP, mientras que otras requieren TMP.
El sistema %TIME% devuelve la hora actual. Utilice el mismo formato que el comando time /t. Generado por cmd.exe. Para obtener más información sobre el comando de tiempo, consulte Hora.
%USERDOMAIN% devuelve el nombre de dominio que contiene la cuenta de usuario local.
%USERNAME% devuelve el nombre del usuario de inicio de sesión local actual.
%USERPROFILE% devuelve la ubicación local del perfil de usuario actual.
%WINDIR% system devuelve la ubicación del directorio del sistema operativo.
============================================ = ===============================================
Microsoft recomienda la nomenclatura húngara, que actualmente utilizan la mayoría de los fabricantes de software. Las reglas específicas son las siguientes:
La nomenclatura húngara es el estándar de nomenclatura en programación. El principio básico es: nombre de variable = atributo + tipo + descripción del objeto, donde el nombre de cada objeto debe tener un significado claro, pudiendo ser el nombre completo o parte del nombre del objeto. La denominación debe ser fácil de recordar y comprender. Es importante garantizar la coherencia del nombre.
Por ejemplo, el nombre del formulario se puede abreviar como frm en la nomenclatura húngara. Cuando la variable del formulario se llama Switchboard, el nombre completo de la variable debe ser frmSwitchboard. De esta manera, es fácil ver por el nombre de la variable que el panel de conmutación es un formulario. Asimismo, si el tipo de variable es una etiqueta, debe llamarse lblSwitchboard. Se puede ver que la nomenclatura húngara es muy fácil de recordar y hace que los nombres de las variables sean muy claros y fáciles de entender, lo que mejora la legibilidad del código y facilita la comunicación entre programadores.
Esta técnica de nomenclatura fue propuesta por Charles Simonyi, un hábil programador de Microsoft nacido en Hungría. A las personas que trabajaron con él en Microsoft se les enseñó a utilizar esta convención. Todo es normal para ellos. Pero para las personas ajenas al equipo del proyecto dirigido por Simonyi, esto era extraño. Pensaron que era una expresión estereotipada, incluso porque estaba escrita en húngaro. A partir de entonces, este método de denominación pasó a ser conocido como nomenclatura húngara.
Se dice que el término fue inventado por un programador húngaro llamado Charles Simonyi. Posteriormente permaneció en Microsoft durante varios años, por lo que
Esta nomenclatura se ha extendido por el mundo a través de diversos productos y documentos de Microsoft. A la mayoría de los programadores hoy en día no les importa si lo usan o no.
Este término se utiliza más o menos en cualquier software desarrollado. El punto de partida de este método de denominación es cambiar el nombre de la cantidad a: atributo + tipo.
+Descripción del objeto Para permitir que los programadores tengan una comprensión intuitiva del tipo y otras propiedades de las variables al crear variables, es el siguiente.
Esta es la convención de nomenclatura para las variables HN, algunas de las cuales son mis preferencias personales:
Sección de propiedades
Variables globales
g_
p>Constante
c_
Variable miembro de clase C++
m_
Variable estática
s_
Tipo de pieza
Aguja
p
Función
Función [matemática] p>
No válido
v
Procesamiento
h
Entero largo
l
Booleano
b
Tipo de punto flotante (a veces llamado archivo)
f
Doble
Ancho desarrollado (abreviatura de Ancho desarrollado)
Cadena
Tamaño (abreviatura de tamaño)
Entero corto
n
p>Doble coma flotante
d
Contar
c (generalmente cnt)
Carácter<; /p>
Ch (normalmente c)
Entero
I (normalmente n)
Byte
Después
Palabra
w
Tipo real
r
Sin símbolo
u
Parte de descripción
Más alto
Máximo
Mínimo
Hokkien
Inicialización
Inicialización
Variables temporales
Temperatura
Objeto de origen
Consejo de Investigación
p>Objeto de destino
Plataforma de software para simulación de entornos de edificios y sistemas HVAC
Aquí hay algunos ejemplos:
Hwnd: h es una descripción de tipo, representa una manija, wnd es una descripción de objeto variable representa una ventana, por lo que Hwnd representa un identificador de ventana;
PFNeatapple: PFN es una descripción de tipo, es decir, un puntero a una función, eatapple es una descripción de objeto variable, por lo que significa.
Variable puntero de función que apunta a la función EatApple.
G _ Cch: G _ es una descripción de atributo, que representa una variable global. C y ch son tipo de recuento y tipo de carácter respectivamente, y juntos representan una clase de variable.
Escriba donde se ignora la descripción del objeto, por lo que representa una variable global que cuenta el número de caracteres.
Las anteriores son las reglas generales de la nomenclatura HN.
Resumen: nomenclatura húngara
Nomenclatura húngara
Convenciones de nomenclatura MFC, identificador, control y estructura variables de ejemplo de tipo de ventana Variables de ejemplo de clase MFC
HWND hWndCWnd * pWnd
HDLG hDlg; CDialog * pDlg
HDC hDCCDC * pDC
HGDIOBJ hGdiObjCGdiObject * pGdiObj
HPEN hPen; CPen * pPen
HBRUSH hBrushCBrush * pBrush
HFONT hFontCFont * pFont
HBITMAP hBitmapCBitmap * pBitmap
HPALETTE hPaltteCPalette * pPalette
HRGN hRgnCRgn * pRgn
HMENU hMenuCMenu * pMenu
HWND hCtlCState * pState
HWND hCtlCButton * pButton
HWND hCtlCEdit * pEdit
HWND hCtlCListBox * pListBox
HWND hCtlCComboBox * pComboBox
HWND hCtlCScrollBar * pScrollBar
HSZ hszStr< /p; >
Punto pt; CPoint esquina;
Tamaño; CSize tamaño;
RECT rectángulo; CRect rect
Ejemplo de tipo de prefijo de especificación de nomenclatura de prefijo universal p>
c clase o estructura CDocument, CPrintInfo
M_member variable m_pDoc, m_n client
Ejemplo de descripción de tipo de prefijo de especificación de nomenclatura de variable
Ch char 8- carácter de bit chGrade
Ch TCHAR Si se define _UNICODE, es el carácter de 16 bits chName.
Booleano
N int entero (su tamaño depende del sistema operativo) nLength
Cancelar valor sin signo (su tamaño depende del sistema operativo) nHeight p>
w palabra valor sin signo de 16 bits wPos
Entero largo con signo de 32 bits l desplazamiento
Entero sin signo de 32 bits
P *Puntero pDoc
Lp far *Puntero lejano lpszName
Puntero de cadena de 32 bits
Puntero de cadena constante de 32 bits
Si por definición _UNICODE , Lpsz LPCTSTR es un puntero de cadena constante de 32 bits lpszName.
Identificador de objeto de ventana
Lpfn CALLBACK es un puntero lejano que apunta a la función de devolución de llamada.
Rango de instancias de tipo de símbolo de prefijo
IDR_Múltiples recursos de diferentes tipos * * *Disfruta de ID IDR_mai en el marco1 ~ 0x6fff.
Recurso IDD_dialog IDD_spell_check1 ~ 0x6fff
Contexto de ayuda del recurso HIDD_Dialog hidd_spell_check 0x 20001 ~ 0x 26 ff
Recurso de mapa de bits BID_empresa_logo1 ~ 0x6fff
IDC_ recurso de cursor IDC_ pencil1 ~ 0x6fff
IDI_Icon recurso idi _Notepad 1 ~ 0x6fff
ID_Command ID del elemento de menú o barra de herramientas_Tools ID_Tools_SPELLING 0x 8000 ~ 0x dfff
Contexto de ayuda de HID_command HID_tools_spelling 0x 18000 ~ 0x 1 dfff
El cuadro de mensaje IDP_ indica IDP_IDP_INVALID_part no 8 ~ 0x deef.
HIDP_Cuadro de mensajes contexto de ayuda hidp_invalid_part no 0x 30008 ~ 0x 3 deff
IDS_ identificadores de recursos de cadena _ copyright 1 ~ 0x7eef
IDC_ El control en el cuadro de diálogo IDC_RECALC 8~0xDEEF
Tipo de nombre de convención de nomenclatura de macros de Microsoft MFC
Una versión única de la biblioteca de vínculos dinámicos (DLL) de AFXDLL.
_ALPHA sólo compila para procesadores DEC Alpha.
_DEBUG incluye una versión de depuración del diagnóstico.
_MBCS conjunto de caracteres multibyte compilados
_UNICODE Abra UNICODE en la aplicación.
Función proporcionada por AFXAPI MFC
Función de devolución de llamada mediante puntero.
Identificador de biblioteca Valores y significados del identificador con nombre
U ANSI(N) o Unicode(U)
d Depurar o liberar: D = Depurar ; ignorar el identificador publicado.
Descripción de la biblioteca de especificación de nomenclatura de versión de biblioteca estática
Versión de depuración de NAFXCWD. LIB: biblioteca de enlaces estáticos MFC
NAFXCW. Distribución LIB: biblioteca de enlaces estáticos MFC
Versión de depuración de UAFXCWD. LIB: biblioteca de enlaces estáticos MFC que admite Unicode
UAFXCW. Versión LIB: biblioteca de enlaces estáticos MFC que admite Unicode.
Tipo de nombre de convención de nomenclatura de biblioteca de vínculos dinámicos
_AFXDLL La única versión de la biblioteca de vínculos dinámicos (DLL)
Función Winapi proporcionada por Windows
Nueva descripción de definición de tipo de convención de nomenclatura en Windows.h
WINAPI usa la posición FAR PASCAL en las declaraciones API. Si está escribiendo una DLL utilizando correcciones de API exportadas, puede usar este tipo en su propia API.
DEVOLUCIÓN DE LLAMADA Donde FAR PASCAL se utiliza en rutinas de devolución de llamada de aplicaciones como ventanas y cuadros de diálogo.
LPCSTR es lo mismo que LPSTR, excepto que LPCSTR se usa para punteros de cadena de solo lectura y su definición es similar (const char FAR*).
UINT es un tipo entero portátil sin signo cuyo tamaño está determinado por el entorno del host (32 bits para Windows NT y Windows 9x es sinónimo de int sin signo).
LRESULT El tipo de valor de retorno del ventanador.
lParam declara el tipo utilizado por LPARAM, que es el cuarto parámetro del programa de ventana.
wParam declara el tipo utilizado por WPARAM, que es el tercer parámetro del programa de ventana.
LPVOID es un tipo de puntero general, igual que (void *), y puede usarse en lugar de LPSTR.
============================================ === ===============================================
Convención de nomenclatura de variables
Prefijo
Tipo
Descripción
Ejemplo
Señor honorario
Té
Caracteres de 8 bits
chGrade
Lord of Honor
TCHAR
Si usa la definición_UNICODE, entonces tiene 16 caracteres.
chName
b
Booleano
Booleano
Benable
n p>
(Igual que Organizaciones internacionales) Organizaciones internacionales
Entero (su tamaño depende del sistema operativo)
n longitud
n
UINT
Valor sin signo (su tamaño depende del sistema operativo)
Alto
w
Palabra
Valor sin signo de 16 bits
wPos
l
Largo
Entero con signo de 32 bits
lOffset
Ancho desarrollado (abreviatura de Ancho desarrollado)
DWORD
Entero sin signo de 32 bits
dwRange
p>p
*
Aguja
pDoc
Programación lineal
FAR* p>
Puntero lejano
lpszName
lpsz
LPSTR
Puntero de cadena de 32 bits
lpszName
lpsz
LPCSTR
Puntero de cadena constante de 32 bits
lpszName
lpsz
LPCTSTR
Puntero de cadena constante de 32 bits, si está definido por _UNICODE.
lpszName
h
Procesamiento
identificador de objetos de Windows
hWnd
lpfn
Reciclaje
Puntero lejano de la función de devolución de llamada
Prefijo
Tipo de símbolo
Ejemplo
Alcance
IDR_
Múltiples recursos de diferentes tipos * * * comparten la misma identidad.
IDR_MAIINFRAME
1~0x6FFF
IDD_
Recurso de diálogo
IDD _Spelling_Check
p>
1~0x6FFF
HIDD_
Contexto de ayuda para recursos de diálogo
HIDD_Spell Check
0x20001~0x26FF
p>IDB_
Recurso de mapa de bits
IDB_Company_Logo
1~0x6FFF
IDC_
Recurso de cursor
IDC_PENCIL
1~0x6FFF
IDI_
Recurso de iconos
IDI _ Bloc de notas
1~0x6FFF
ID_
Elemento de menú o comando en la barra de herramientas
ID _Tools_Spelling
0x8000~0xDFFF
HID_
Contexto de ayuda del comando
HID_Tool_Spell
0x 18000 ~ 0x 1 ddff
IDP_
Mensaje mensaje del cuadro
IDP_INVALID_Número de pieza
8~0xDEEF
HIDP_
Contexto de ayuda del cuadro de mensaje
HIDP_Número de pieza no válido
0x30008~0x3DEFF
IDS_
Recursos de cadena
IDS_Copyright
1~0x7EEF
IDC_
Controles en el cuadro de diálogo
IDC_RECALC
8~0xDEEF
Convención de nomenclatura de la versión de la biblioteca estática
Almacén
Descripción
NAFXCWD. Movimiento de Liberación
Versión de depuración: biblioteca de enlaces estáticos MFC
NAFXCW. Movimiento de Liberación
Versión publicada: biblioteca de enlaces estáticos MFC
UAFXCWD. Movimiento de Liberación
Versión de depuración: biblioteca de enlaces estáticos MFC que admite Unicode
UAFXCW. Movimiento de Liberación
Distribución: biblioteca de enlaces estáticos MFC que admite Unicode.
Nueva convención de nomenclatura en Windows.h
Tipos
Descripción de la definición
WINAPI
Uso de declaraciones API FAR Posición PASCAL en , puede usar ese tipo en su propia API si está escribiendo una DLL usando el punto de relleno de API exportado.
Reciclaje
La ubicación de FAR PASCAL utilizada en rutinas de devolución de llamada de aplicaciones, como ventanas y cuadros de diálogo.
LPCSTR
Igual que LPSTR, excepto que LPCSTR se usa para punteros de cadena de solo lectura y su definición es similar a (const char FAR*).
UINT
Un tipo entero portátil sin signo cuyo tamaño está determinado por el entorno del host (32 bits para Windows NT y Windows 9x; es sinónimo de int sin signo).
LRESULT
El tipo de valor de retorno del programa de ventana
LPARAM
Declare el tipo utilizado por lParam, que es el cuarto de el parámetro del programa de ventana.
WPARAM
Declara el tipo utilizado por wParam, que es el tercer parámetro del programa de ventana.
LPVOID
Un tipo de puntero general, como (void *), que se puede utilizar en lugar de LPSTR.
Convenciones de nomenclatura para MFC, identificadores, controles y estructuras
Tipos de Windows
Variables de muestra
Clases de MFC
Variables de muestra
HWND
hWnd
CWnd*
pWnd
HDLG
hDlg
CDialog*
pDlg
Sistema de control de descenso de colinas
hDC
Centros para el control de enfermedades y Prevención *
pDC
HGDIOBJ
hGdiObj
CGdiObject*
pGdiObj
HPEN
hPen
CPen*
pPen
HBRUSH
hBrush
CBrush*
pBrush
HFONT
hFont
CFont*
Pufeng;
HBITMAP
hBitmap
CBitmap*
pBitmap
Paltte
hPaltte
CPalette*
pPalette
HRGN
hRgn
CRgn*
pRgn
HMENU
hMenu
CMenu*
pMenu
HWND
hCtl
CState *
pState
HWND
hCtl
Botón*
pButton
HWND
hCtl
Sedit*
pEdit
HWND
hCtl
ListBox*
pListBox
HWND
hCtl
cComboBox*
pComboBox
HWND
hCtl
CScrollBar*
pScrollBar
HSZ
hszStr
CString p>
pStr
Puntos
pt;
CPoint
pt;
Tamaño p>
Tamaño;
CTamaño
Tamaño;
Rectángulo
rect
CRect p>
rect
Convención general de nomenclatura de prefijos
Prefijo
Tipo
Ejemplo
C
Categoría o estructura
CDocument, CPrintInfo
m_
Variable miembro
m_pDoc, m_nclient
Nomenclatura del identificador de biblioteca
Identificador
Valor y significado
u
ANSI(N) o Unicode(U)
d
Depurar o liberar: D = depurar; ignorar los identificadores liberados.
Convención de nomenclatura de bibliotecas de vínculos dinámicos
Nombre
Tipo
_AFXDLL
Biblioteca de vínculos dinámicos (DLL) única versión de WINAPI
WINAPI
Funciones proporcionadas por Windows
Convención de nomenclatura de macros de Microsoft MFC
Nombre
Escriba
_AFXDLL
La única versión de la biblioteca de vínculos dinámicos (DLL).
_ALPHA
Compile sólo para procesadores DEC Alpha.
_DEBUG
Versión de depuración que incluye diagnóstico.
_MBCS
Compila el juego de caracteres multibyte
_UNICODE
Abre Unicode en la aplicación.
AFXAPI
Funciones proporcionadas por MFC
Reciclaje
Funciones recuperadas mediante punteros
La nomenclatura húngara es Estándares de nomenclatura en programación. El principio básico es: nombre de variable = atributo + tipo + descripción del objeto. El nombre de cada objeto debe tener un significado claro y puede ser el nombre completo o parte del nombre del objeto. La denominación debe ser fácil de recordar y comprender. Es importante garantizar la coherencia del nombre.
Por ejemplo, el nombre del formulario se puede abreviar como frm en la nomenclatura húngara. Cuando la variable del formulario se llama Switchboard, el nombre completo de la variable debe ser frmSwitchboard. De esta manera, es fácil ver por el nombre de la variable que el panel de conmutación es un formulario. Asimismo, si el tipo de variable es una etiqueta, debe llamarse lblSwitchboard. Se puede ver que la nomenclatura húngara es muy fácil de recordar y hace que los nombres de las variables sean muy claros y fáciles de entender, lo que mejora la legibilidad del código y facilita la comunicación entre programadores.
Esta técnica de nomenclatura fue propuesta por Charles Simonyi, un hábil programador de Microsoft nacido en Hungría. A las personas que trabajaron con él en Microsoft se les enseñó a utilizar esta convención. Todo es normal para ellos. Pero para las personas ajenas al equipo del proyecto dirigido por Simonyi, esto era extraño. Pensaron que era una expresión estereotipada, incluso porque estaba escrita en húngaro. Desde entonces, este método de denominación se denomina nomenclatura húngara. Se dice que este método de denominación fue inventado por un programador húngaro llamado Charles Simonyi. Posteriormente, permaneció en Microsoft durante varios años y este método de denominación se extendió por el mundo a través de varios productos y documentos de Microsoft. Hoy en día, la mayoría de los programadores utilizan esta nomenclatura hasta cierto punto, independientemente del software que utilicen para el desarrollo. El punto de partida de este método de denominación es combinar nombres cuantitativos en el orden de: atributo + tipo + descripción del objeto, de modo que los programadores tengan una comprensión intuitiva del tipo de variable y otros atributos al crear variables.
La siguiente es la convención de nomenclatura de variables HN, algunas de las cuales son mis preferencias personales:
Sección de propiedades
Variables globales g_
Constantes
c_
Variables miembro de clase C++
m_
Variables estáticas
s_
Parte tipo
Aguja
p
Función
Función [matemática]
No válida
v p>
Manejo
h
Largo
l
Booleano
b
Coma flotante (a veces llamado archivo)
f
Palabra doble
Ancho desarrollado (abreviatura de Ancho desarrollado)
Cadena
Tamaño (abreviatura de tamaño)
Entero corto
n
Coma flotante de doble precisión
d
Contar
c (normalmente cnt)
Carácter; letra
Ch (normalmente c)
Entero
I (normalmente n)
bytes
palabra pasada
w
Tipo real
r
Sin símbolo
u
Parte de descripción
Más alto
Máximo
Mínimo
Hokkien
Inicialización
Inicialización
p>Variable temporal p>
Temperatura
Objeto de origen
Science Research Council
Objeto de destino
Plataforma de software para simulación de entornos de edificios y sistemas HVAC
Aquí hay algunos ejemplos:
Hwnd: h es una descripción de tipo, que representa un identificador, wnd es una descripción de objeto variable, que representa una ventana, por lo que Hwnd representa el identificador de la ventana;
PFNeatapple: PFN es una descripción de tipo, que representa un puntero a una función, y EATAPL es una descripción de objeto variable, por lo que representa una variable de puntero de función que apunta a la función EATAPL.
G _ Cch: G _ es una descripción de atributo, que representa una variable global. C y ch son el tipo de recuento y el tipo de carácter respectivamente, y juntos representan el tipo de variable. La descripción del objeto se ignora aquí, por lo que representa una variable global que cuenta el número de caracteres.