Introducción urgente, urgente y breve a las ideas básicas de la programación win32
Las seis etapas del crecimiento del dominio
La primera etapa
Esta etapa se trata principalmente de ser capaz de utilizar un determinado idioma con fluidez. Esto equivale a cosas superficiales como rutinas y posturas en el entrenamiento de artes marciales.
La segunda etapa
En esta etapa, puede dominar las interfaces basadas en una determinada plataforma (como las funciones API de Win32 que usamos comúnmente ahora) y las funciones de biblioteca correspondientes del idioma. Después de llegar a esta etapa, es equivalente a practicar sparring real de Sanda y realmente puede tener algunas aplicaciones en las escuelas secundarias.
La tercera etapa
Esta etapa puede comprender profundamente la capa inferior de un determinado sistema de plataforma y ya tiene la capacidad de fuerza interna primaria, es decir, "hay una espada en la mano, pero ninguna espada en el corazón."
La cuarta etapa
Esta etapa puede realizar un desarrollo más profundo directamente en la plataforma. Básicamente, se puede decir que alcanzar este nivel es haber entrado en un nivel alto. En este momento, ingresó a la práctica de habilidades internas avanzadas. Por ejemplo, puede modificar el VxD o el kernel del sistema operativo.
En este momento, ya no existen restricciones de idioma. El idioma es solo una herramienta. Incluso si deseas desarrollarte en un idioma que no conoces, puedes familiarizarte con él y hacerlo. Puedes tenerlo a tu alcance. No es como ser el primero en el tipo de situación al aprender un idioma durante la etapa. En general, la transición de la tercera etapa a la cuarta etapa es más difícil. ¿Por qué es difícil? Por eso muchas personas no pueden cambiar de opinión.
La quinta etapa
Esta etapa ya no se limita a cuestiones técnicas simples, sino que puede comprender y diseñar una arquitectura de sistema relativamente grande desde una perspectiva general desde el núcleo hasta la interfaz externa. . Se puede decir que "no hay espada en la mano, pero sí espada en el corazón". Después de llegar a esta etapa, puede analizar cualquier software en Internet y diseñarlo de acuerdo con sus propios requisitos. Incluso un software grande como MS Word definitivamente aparecerá siempre que tenga suficiente tiempo.
La sexta etapa
Esta etapa también es el estado más alto, alcanzando "ningún movimiento para ganar, pero un movimiento para ganar". En este momento, cualquier problema se convierte en una pura cuestión de ideas, no en algo que pueda representarse mediante ningún código. Es decir, si miras la batalla de boxeo de Shaolin desde el margen, puedes aprender este boxeo y usarlo. Esta es una verdadera figura maestra. En este momento, a sus ojos, no hay diferencia entre Win 32 o Linux.
------------------------------------------- ----- -------
Se debe seguir un cierto método al desarrollarse hacia arriba desde la primera etapa. La primera y la segunda etapa se pueden completar mediante el autoestudio, siempre que se estudie con más atención y con paciencia.
Si quieres pasar de la segunda etapa a la tercera etapa, debes tener un buen ambiente de aprendizaje. Por ejemplo, hay un líder maestro o hay un buen ambiente de formación en la empresa. Después de dos o tres años de acumulación, se puede llegar a la tercera etapa.
------------------------------------------- ----- -------
En el modo de depuración, el sistema de compilación inserta una gran cantidad de código, como inspección del montón, variables de inicialización, etc., que no está disponible en Liberar. Por lo tanto, el código en el entorno de depuración tendrá dependencias, es decir, depende de una gran cantidad de código generado automáticamente por el sistema de compilación. De esta manera, al cambiar al modo de lanzamiento, no habrá dicho código. Esto puede dar lugar a errores.
------------------------------------------- ----- -------
Los sistemas de software generales no se pueden diseñar simplemente de acuerdo con métodos de ingeniería de software, porque puede que no sea posible implementarlos completamente de acuerdo con métodos de ingeniería de software.
Existe un principio muy importante al crear software: reducir la acumulación de problemas.
Según el método tradicional de ingeniería de software, todos los problemas se pueden encontrar al principio. Sin embargo, generalmente es imposible predecir todos los problemas que encontrará el programa durante el proceso de desarrollo. Para dar un paso atrás, incluso si ha diseñado todos los marcos, es posible que no pueda encontrar la solución correcta por un tiempo cuando de repente se encuentra con un problema y luego intenta resolverlo, lo que puede llevar mucho tiempo. tiempo para resolver este problema.
Cuando descubra que este problema es difícil de resolver o no se puede resolver, todo el proyecto "abortará".
La mejor manera de crear una interfaz es utilizar directamente el programa de consola para implementar primero el cuerpo principal del programa y luego extraer la interfaz de él. Esto hará que el refinamiento sea más sencillo y claro. Si utiliza una interfaz visual para implementar las funciones del programa primero y luego refinarlas, será más difícil, porque la interfaz y la implementación se mezclarán, lo que dificultará la distinción.
------------------------------------------- ----- -------
La asignación dinámica aumenta la cantidad de programación, así que intente utilizar memoria estática siempre que sea posible y preste atención al trabajo de liberación después de su uso.
Escribe primero el cuerpo de la función y luego el encabezado y los comentarios de la función.
Si no hay bloques de funciones, puede ordenarlos en el orden en que se llaman las funciones en el programa.
------------------------------------------- ----- -------
La sobrecarga es de poca utilidad en la práctica, pero se introduce mucho en los libros de texto.
El código debe leerse en fragmentos.
------------------------------------------- ----- -------
MS-DOS Stub 128bytes
Cuando se ejecuta en un entorno que no es Windows, "Este programa no se puede ejecutar en modo DOS" se muestra
Firma PE 4 bytes
\"Firma PE encontrada
Tipo de archivo: IMAGEN EJECUTABLE\"
Encabezado COFF 20 bytes p>
Información del archivo
Encabezado PE 224 bytes
El sexto campo es el punto de entrada del programa (punto de entrada), y se debe agregar el valor del noveno campo para obtener el dirección intrínseca.
El noveno campo es la ubicación de Image Base, que es la ubicación donde se carga este archivo en la memoria.
El decimonoveno campo es subsistema, que indica si se trata del modo Consola (texto) o del modo GUI.
¿Encabezados de sección?
¿Hay n. Nombre/Dirección física/Tamaño virtual/Tamaño de datos sin procesar……
¿Secciones?
------------------------ - ----------------------
Tutorial Básico sobre Lógica de Programación
Al desarrollar algoritmos, vaya La inspección es el revisión formal, que suele tardar 2 horas.
El modo anidado es más eficiente que el modo secuencial porque reduce el número de juicios. Siempre que se cumpla cualquiera de las condiciones, las declaraciones secuenciales a menudo prueban la primera condición.
¿Clase abstracta? Si no hay métodos definidos en la clase abstracta, la subclase debe definir o definir métodos que no están en la clase abstracta. De lo contrario, la nueva subclase también se convierte en una clase abstracta y, por tanto, no puede tener sus objetos.
Acerca de las clases internas
Cuando una clase solo puede desempeñar un papel en el entorno interno de la clase encapsulada, o depende de la clase encapsulada para lograr el efecto correspondiente, una clase interna debe utilizarse. Por ejemplo, un cursor de texto (que rastrea la posición de edición actual del texto) solo tiene sentido dentro de un archivo o componente de texto específico.
------------------------------------------- ----- -------
¡Conocimiento de software!
La red de nodos de eventos del plan del proyecto real debe ser acíclica y debe haber un nodo de inicio único con un grado de entrada de 0 y un nodo de finalización único con un grado de salida de 0. Los bordes de la red de nodos de eventos se pueden ponderar, lo que representa el tiempo necesario para completar una actividad.
La idea básica del método hash es: el valor clave del nodo determina la dirección de almacenamiento del nodo.
El número de comparaciones de códigos clave y movimientos de registros requeridos por el método de clasificación del shell son aproximadamente n (1/3). Este tipo de clasificación es inestable.
Ordene rápidamente un archivo con n registros. En el peor de los casos, el tiempo de ejecución es O (n (2)), que es comparable a la clasificación por burbujas. Sin embargo, el tiempo promedio de ejecución de la ordenación rápida es O (nlog2 n), que obviamente es mejor que la ordenación por burbujas y los métodos de ordenación por inserción directa y selección directa presentados anteriormente. Sin embargo, la clasificación rápida requiere una sobrecarga de almacenamiento adicional de O (log2 n). Esto se debe a que la implementación del algoritmo de clasificación rápida requiere un espacio de pila de O (log2 n).