Red de conocimiento informático - Problemas con los teléfonos móviles - Tengo un problema con la programación en VB, por favor dame el consejo de un experto.

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_

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

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

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

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>

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

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

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

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.