Tengo un problema con la programación en VB, por favor dame el consejo de un experto.
ALLUSERSPROFILE local Devuelve la ubicación del perfil de Todos los usuarios.
APPDATA Local Devuelve la ubicación donde la aplicación almacena los datos de forma predeterminada.
CD local devuelve la cadena del directorio actual.
CMDCMDLINE local Devuelve la línea de comando exacta utilizada para iniciar el Cmd.exe actual.
Sistema CMDEXTVERSION Devuelve el número de versión de la "Extensión del controlador de comandos" actual.
COMPUTERNAME Sistema Devuelve el nombre del ordenador.
Sistema COMSPEC Devuelve la ruta exacta al programa ejecutable del intérprete de línea de comandos.
Sistema FECHA 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 Sistema Devuelve el código de error del comando anterior. Por lo general, un valor distinto de cero indica un error.
SISTEMA HOMEDRIVE Devuelve la letra de la unidad de la estación de trabajo local conectada al directorio de inicio del usuario. Establecido según el valor del directorio de inicio. El directorio de inicio del usuario se especifica en Usuarios y grupos locales.
Sistema HOMEPATH Devuelve la ruta completa al directorio de inicio del usuario. Establecido según el valor del directorio de inicio. El directorio de inicio del usuario se especifica en Usuarios y grupos locales.
El sistema HOMESHARE devuelve la ruta de red del directorio personal privado del usuario. Establecido según el valor del directorio de inicio. El directorio de inicio del usuario se especifica en Usuarios y grupos locales.
LOGONSERVER local Devuelve el nombre del controlador de dominio que autentica la sesión de inicio de sesión actual.
NUMBER_OF_PROCESSORS System Especifica el número de procesadores instalados en el ordenador.
OS system devuelve el nombre del sistema operativo. Windows 2000 muestra su sistema operativo como Windows_NT.
Sistema PATH Especifica la ruta de búsqueda de archivos ejecutables.
PATHEXT System Devuelve una lista de extensiones de archivos que el sistema operativo considera ejecutables.
PROCESSOR_ARCHITECTURE System Devuelve la arquitectura del chip del procesador. Valor: x86 o IA64 (basado en Itanium).
PROCESSOR_IDENTFIER Sistema Devuelve la descripción del procesador.
PROCESSOR_LEVEL System Devuelve el número de modelo del procesador instalado en la computadora.
PROCESSOR_REVISION System Devuelve el número de versión del procesador.
PROMPT local Devuelve la configuración del símbolo del sistema para el intérprete actual. Generado por cmd.exe.
Sistema RANDOM Devuelve cualquier número decimal entre 0 y 32767. Generado por cmd.exe.
SYSTEMDRIVE System Devuelve la unidad que contiene el directorio raíz del sistema operativo del servidor Windows (es decir, el directorio raíz del sistema).
SYSTEMROOT System Devuelve la ubicación del directorio raíz del sistema operativo del servidor Windows.
TEMP y TMP Sistema y usuario Devuelve el directorio temporal predeterminado utilizado 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 local Devuelve el nombre del dominio que contiene la cuenta de usuario.
USERNAME local Devuelve el nombre del usuario actualmente conectado.
USERPROFILE local Devuelve la ubicación del perfil del usuario actual.
Sistema WINDIR Devuelve la ubicación del directorio del sistema operativo.
============================================ === ===============================================
Microsoft recomienda la nomenclatura húngara, que también utilizan la mayoría de los fabricantes de software. Los detalles específicos son los siguientes:
La nomenclatura húngara es una convención de nomenclatura de 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 del objeto o una parte del nombre. La denominación debe basarse en el principio de ser fácil de recordar y comprender. Es muy importante garantizar la coherencia de los nombres.
Por ejemplo, si el nombre del formulario es form, se puede abreviar como frm en la nomenclatura húngara. Cuando el nombre de la variable del formulario es Switchboard, el nombre completo de la variable debe ser frmSwitchboard. De esta manera, es fácil saber por el nombre de la variable que Switchboard es un formulario. De manera similar, 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. Esto mejora la legibilidad del código y facilita la comunicación entre los programadores.
Esta técnica de denominación fue propuesta por un hábil programador de Microsoft, Charles Simonyi, que nació en Hungría. A las personas que trabajaron con él en Microsoft se les enseñó a utilizar esta convención. Todo esto es normal para ellos. Pero fue extraño para quienes estaban fuera del equipo del proyecto liderado por Simonyi, quienes pensaron que era una forma rígida de expresión, e incluso dijeron que tenía una apariencia tan extraña porque estaba escrito en húngaro. A partir de entonces, este método de denominación se denominó nomenclatura húngara.
Se dice que esta nomenclatura fue inventada por un programador húngaro llamado Charles Simonyi. Posteriormente, permaneció en Microsoft durante varios años, por lo que
Esta nomenclatura fue adoptada por varios productos de Microsoft. y la documentación se difundió por todo el mundo. Hoy en día, la mayoría de los programadores utilizan esta nomenclatura más o menos sin importar qué software utilicen para el desarrollo.
El punto de partida de esta nomenclatura es combinar los nombres de las variables en el orden de: tipo de atributo
descripción del objeto, para que los programadores tengan una comprensión intuitiva del tipo de variable y otros atributos al crear variables, de la siguiente manera
Esta es la convención de nomenclatura de variables HN, algunas de las cuales son mis preferencias personales:
Parte de atributo
Variables globales
g_ p >
Constante
c_
c Variable miembro de clase
m_
Variable estática
s_
Tipo de parte
Puntero
p
Función
fn
No válido
p>v
Manejar
h
Largo
l
Booleano
p>b
Tipo de coma flotante (a veces también denominado archivo)
f
Palabra doble
dw
String
sz
Short
n
Coma flotante de doble precisión
d
Conteo
c (generalmente cnt)
Carácter
ch (generalmente c)
Tipo de entero
i (normalmente n)
byte
por
palabra
w
p>
Tipo real
r
Sin firmar
u
Parte de descripción
Máximo
Máx
Mínimo
Mín
Inicialización
Inicio
Temporal variable
p>
T (o Temp)
Objeto de origen
Src
Objeto de destino
Dest
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 una ventana handle;
pfnEatApple: pfn es una descripción de tipo, que representa un puntero a una función, y EatApple es una descripción de objeto variable, por lo que representa una variable de puntero de función que apunta a la función EatApple.
g_cch: g_ es la descripción del atributo, que representa variables globales, cy ch son el tipo de recuento y el tipo de carácter respectivamente, y juntos representan el tipo de variable.
Aquí se ignora la descripción del objeto. , por lo que representa una variable global que cuenta caracteres.
Las anteriores son las reglas generales de la nomenclatura HN.
Resumen: nomenclatura húngara
Nomenclatura húngara
Convenciones de nomenclatura para MFC, identificadores, controles y estructuras Variables de muestra de tipo Windows Variables de muestra de clase MFC
HWND hWnd;
HDLG hDlg;
HDC hDC;
HGDIOBj hGdiObj; ;
HPEN hPen; CPen* pPen;
HBRUSH hBrush; CBrush* pBrush;
HFONT hFont* pFont; HBITMAP hBitmap; CBitmap* pBitmap;
HPALETTE hPaltte; CPalette* pPalette;
HRGN hRgn; CRgn* pRgn; /p>
HWND hCtl; CState* pState;
HWND hCtl; CButton* pButton;
HWND hCtl; CEdit* pEdit; ; CListBox* pListBox;
HWND hCtl; CComboBox* pComboBox;
CScrollBar* pScrollBar;
p>
PUNTO pt; CPoint pt;
Tamaño de tamaño; Tamaño de CSize;
RECT rect; Ejemplo de tipo de prefijo de especificación
Clase o estructura C CDocument, CPrintInfo
m_ variable miembro m_pDoc, m_nCustomers
Ejemplo de descripción de tipo de prefijo de especificación de nomenclatura de variable
ch char carácter de 8 bits chGrade
ch TCHAR carácter de 16 bits chName si _UNICODE está definido
b BOOL booleano bEnable
n int int (su El tamaño depende del sistema operativo) nLength
n UINT valor sin signo (el tamaño depende del sistema operativo) nHeight
w WORD Valor sin signo de 16 bits wPos
l LONG Entero de 32 bits con signo lOffset
dw DWORD Entero de 32 bits sin signo dwRange
p * Puntero pDoc
lp FAR* Puntero lejano lpszName
lpsz LPSTR Puntero de cadena de 32 bits lpszName
lpsz LPCSTR Puntero de cadena constante de 32 bits lpszName
lpsz LPCTSTR Si se define _UNICODE, es un puntero de cadena de 32 bits carácter constante Puntero de cadena lpszName
h maneja la oración del objeto de Windows
Manejar hWnd
La devolución de llamada lpfn apunta al puntero lejano de la función CALLBACK
Rango de instancias de tipo de símbolo de prefijo
IDR_ Múltiples recursos de diferentes tipos comparten el identificador IDR_MAIINFRAME 1 ~0x6FFF
IDD_ Recurso de diálogo IDD_SPELL_CHECK 1 ~ 0x6FFF
HIDD_ Contexto de ayuda del recurso de diálogo HIDD_SPELL_CHECK 0x20001 ~ 0x26FF
IDB_ Recurso de mapa de bits IDB_COMPANY_LOGO 1 ~ 0x6FFF
IDC_ Recurso de cursor IDC_PENCIL 1~0x6FFF
IDI_ Recurso de icono IDI_NOTEPAD 1~0x6FFF
ID_ Comando ID_TOOLS_SPELLING del elemento de menú o barra de herramientas 0x8000~0xDFFF
p>
HID_ Contexto de ayuda del comando HID_TOOLS_SPELLING 0x18000~0x1DFFF
IDP_ Mensaje del cuadro de mensaje IDP_INVALID_PARTNO 8~0xDEEF
HIDP_ Cuadro de mensaje Contexto de ayuda HIDP_INVALID_PARTNO 0x30008~0x3DEFF
IDS_ Recurso de cadena IDS_COPYRIGHT 1~0x7EEF
IDC_ Control en el cuadro de diálogo IDC_RECALC 8~0xDEEF
Especificación de nomenclatura de macros de Microsoft MFC tipo de nombre
_AFXDLL dinámico único Dinámico Versión de biblioteca de enlaces (DLL)
_ALPHA Solo compila el procesador DEC Alpha
_DEBUG Versión de depuración que incluye diagnósticos
_MBCS Compila el conjunto de caracteres de varios bytes
_UNICODE Abrir Unicode en una aplicación
Función AFXAPI proporcionada por MFC
Función CALLBACK Devolución de llamada mediante puntero
Identificación de biblioteca Nomenclatura Valores y significados del identificador p>
u ANSI (N) o Unicode (U)
d Depurar o liberar: D = depurar; ignorar el identificador para el lanzamiento.
Descripción de la biblioteca de especificación de nomenclatura de la versión de la biblioteca estática
Versión de depuración de NAFXCWD.LIB: biblioteca de enlaces estáticos MFC
Versión de lanzamiento de NAFXCW.LIB: biblioteca de enlaces estáticos MFC
p> p>UAFXCWD.LIB Versión de depuración: biblioteca de enlaces estáticos MFC con soporte Unicode
UAFXCW.LIB Versión de lanzamiento: biblioteca de enlaces estáticos MFC con soporte Unicode
Biblioteca de enlaces dinámicos Tipo de nombre de especificación de nomenclatura
_AFXDLL La única versión de biblioteca de vínculos dinámicos (DLL)
Funciones WINAPI proporcionadas por Windows
Nuevo tipo de especificación de nomenclatura en Windows.h Descripción de la definición
WINAPI usa la posición FAR PASCAL en la declaración de API. Si está escribiendo una DLL que tiene un punto de población de API exportado, puede usar este tipo en su propia ubicación de API.
CALLBACK. de FAR PASCAL usado en rutinas de devolución de llamada de aplicaciones, como procedimientos de ventana y diálogo
LPCSTR es el 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 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 declara el tipo utilizado por lParam, lParam es el cuarto parámetro del programa de ventana
WPARAM declara el tipo utilizado por wParam, wParam 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
ch
char
8 bits carácter
chGrade
ch
TCHAR
Carácter de 16 bits si _UNICODE está definido
chName p>
b
BOOL
Valor booleano
bEnable
n
int
Tipo entero (su tamaño depende del sistema operativo)
nLength
n
UINT
Valor sin signo (su el tamaño depende del sistema operativo)
nHeight
w
WORD
Valor sin signo de 16 bits
wPos
l
LONG
Entero con signo de 32 bits
lOffset
dw
DWORD
Tipo entero sin signo de 32 bits
dwRange
p
*
Puntero p>
pDoc
lp
FAR*
Puntero lejano
l
pszName
lpsz
LPSTR
Puntero de cadena de 32 bits
lpszName
lpsz
LPCSTR
Puntero de cadena constante de 32 bits
lpszName
lpsz
LPCTSTR
if _UNICODE Definición , es un puntero de cadena constante de 32 bits
lpszName
h
identificador
identificador de objeto de Windows
hWnd
lpfn
devolución de llamada
Puntero lejano a la función CALLBACK
Prefijo
Tipo de símbolo
p>Instancia
Alcance
IDR_
Múltiples recursos ***identificadores compartidos de diferentes tipos
IDR_MAIINFRAME p> p>
1~0x6FFF
IDD_
Recurso de diálogo
IDD_SPELL_CHECK
1~0x6FFF
HIDD_
Contexto de ayuda del recurso de diálogo
HIDD_SPELL_CHECK
0x20001~0x26FF
IDB_
Recursos de mapa de bits
IDB_COMPANY_LOGO
1~0x6FFF
IDC_
Recursos del cursor
IDC_PENCIL
1~0x6FFF
IDI_
Recurso de icono
IDI_NOTEPAD
1~0x6FFF
ID_
Comandos de elementos de menú o barras de herramientas
ID_TOOLS_SPELLING
0x8000~0xDFFF
HID_
Contexto de ayuda de comandos
p >HID_TOOLS_SPELLING
0x18000~0x1DFFF
IDP_
Mensaje del cuadro de mensaje
IDP_INVALID_PARTNO
8 ~ 0xDEEF
HIDP_
Cuadro de mensaje Contexto de ayuda
HIDP_INVALID_PARTNO
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
Biblioteca
Descripción
NAFXCWD.LIB
Versión de depuración: biblioteca de enlaces estáticos MFC
NAFXCW.LIB
Versión de lanzamiento: biblioteca de enlaces estáticos MFC
UAFXCWD.LIB
p>Versión de depuración: biblioteca de enlaces estáticos MFC con soporte Unicode
UAFXCW.LIB
Versión de lanzamiento: biblioteca de enlaces estáticos MFC con soporte Unicode
ventana
Nueva convención de nomenclatura en ws.h
Tipo
Descripción de la definición
WINAPI
Utilice la posición FAR PASCAL en la declaración API, si está escribiendo una DLL que tiene un punto de entrada API exportado, puede usar este tipo en su propia API
CALLBACK
Usar rutinas de devolución de llamada en aplicaciones como ventanas y cuadros de diálogo La posición de FAR PASCAL en el procedimiento de cuadro
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
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
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
Puntero general tipo, igual que (void *) Igual, se puede usar para reemplazar LPSTR
Convenciones de nomenclatura para MFC, identificadores, controles y estructuras
Tipos de Windows
Ejemplo variables
Clase MFC
Variables de muestra
HWND
hWnd
CWnd*
pWnd;
HDLG
hDlg;
CDialog*
pDlg;
HDC
hDC;
CDC*
pDC;
HGDIOBJ
hGdiObj;
CGdiObject*
pGdiObj;
HPEN
hPen
CPen*
pPen; >HBRUSH
hBrush;
CBrush*
pBrush
HFONT
hFont
CFont*
pFont;
HBITMAP
hBitmap
CBitmap*
pBitmap; /p>
HPALETTE
p>
hPalette;
CPalette*
pPalette
HRGN
hRgn;
CRgn *
pRgn;
HMENU
hMenu;
CMenu*
pMenu;
HWND
hCtl
CState*
pState; >HWND
hCtl;
CButton*
pButton;
HWND
hCtl;
CEdit*
pEdit;
HWND
hCt;
l;
CListBox*
pListBox
HWND
hCtl
CComboBox*
pComboBox;
HWND
hCtl
CScrollBar*
pScrollBar
HSZ
p> p>hszStr;
CString
pStr;
PUNTO
pt; CPoint
pt;
TAMAÑO
tamaño
CTamaño
tamaño; >RECT
rect;
CRect
rect;
Convención general de nomenclatura de prefijos
Prefijo
Tipo
Instancia
C
Clase o estructura
CDocumento, CPrintInfo
m_
Variables miembro
m_pDoc, m_nCustomers
Nomenclatura de identificadores de biblioteca
Identificadores
Valores y significados p >
u
ANSI (N) o Unicode (U)
d
Depuración o lanzamiento: D = depurar ignora el identificador para el lanzamiento; .
Convención de nomenclatura de bibliotecas de vínculos dinámicos
Nombre
Tipo
_AFXDLL
La única biblioteca de vínculos dinámicos (DLL ) versión
WINAPI
Funciones proporcionadas por Windows
Convención de nomenclatura de macros de Microsoft MFC
Nombre
Tipo
_AFXDLL
La única versión de la Biblioteca de vínculos dinámicos (DLL)
_ALPHA
Solo compilada para el procesador DEC Alpha
_DEBUG
Versión de depuración que incluye diagnóstico
_MBCS
Juego de caracteres multibyte compilado
_UNICODE p>
Abrir Unicode en una aplicación
AFXAPI
Función proporcionada por MFC
CALLBACK
Función de devolución de llamada mediante puntero
La nomenclatura húngara es una convención de nomenclatura de 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 del objeto o una parte del nombre. La denominación debe basarse en el principio de ser fácil de recordar y comprender. Es muy importante garantizar la coherencia de los nombres.
Por ejemplo, si el nombre del formulario es form, se puede abreviar como frm en la nomenclatura húngara. Cuando el nombre de la variable del formulario es Switchboard, el nombre completo de la variable debe ser frmSwitchboard. De esta manera, es fácil saber por el nombre de la variable que Switchboard es un formulario. De manera similar, 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. Esto mejora la legibilidad del código y facilita la comunicación entre los programadores.
Esta técnica de denominación fue propuesta por un hábil programador de Microsoft, Charles Simonyi, que nació en Hungría. A las personas que trabajaron con él en Microsoft se les enseñó a utilizar esta convención. Todo esto es normal para ellos. Pero fue extraño para quienes estaban fuera del equipo del proyecto liderado por Simonyi, quienes pensaron que era una forma rígida de expresión, e incluso dijeron que tenía una apariencia tan extraña porque estaba escrito en húngaro. A partir de entonces, este método de denominación se llamó nomenclatura húngara. Se dice que esta nomenclatura fue inventada por un programador húngaro llamado Charles Simonyi. Posteriormente, permaneció en Microsoft durante varios años, por lo que esta nomenclatura se adoptó a través de varios productos y documentación de Microsoft. al mundo. Hoy en día, la mayoría de los programadores utilizan esta nomenclatura más o menos sin importar qué software utilicen para el desarrollo. El punto de partida de esta nomenclatura es combinar los nombres de las variables en el orden descrito por el objeto de tipo de atributo, de modo que el programador tenga una comprensión intuitiva del tipo de variable y otros atributos al crear variables. La siguiente es la especificación de nomenclatura de variables HN. que también incluye Algunas son mis preferencias personales:
Sección de atributos
Variable global g_
Constante
c_
c Variables miembro de clase
m_
Variables estáticas
s_
Parte tipo
Puntero
p
Función
fn
No válido
v
Identificador
h
Tipo largo
l
Booleano
b
Tipo de coma flotante (a veces también denominado a como archivo )
f
Palabra doble
dw
Cadena
sz
Tipo de entero corto
n
Coma flotante de doble precisión
d
Contar
c (generalmente cnt )
Carácter
ch (normalmente c)
Tipo entero
i (normalmente n)
byte
por
palabra
w
real
r
Sin firmar
u
Parte de descripción
Máximo
Máx
Mínimo
Mín p>
Inicialización
Init
Variable temporal
T (o Temp)
Objeto fuente
p>Src
Objeto de destino
Dest
Aquí hay algunos ejemplos:
hwnd: h es la descripción del tipo, representa el identificador, wnd es la descripción del objeto variable, representa la ventana, por lo que hwnd representa el identificador de la ventana;
pfnEatApple: pfn es la descripción del tipo, representa el puntero a la función, EatApple es la descripción del objeto variable, entonces representa el puntero a EatApple La variable de puntero de función de la función.
g_cch: g_ es una descripción de atributo, que representa una variable global. c y ch son el tipo de conteo 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 un. variable global que cuenta caracteres.