Red de conocimiento informático - Espacio del host - Utilicé VB para hacer una lupa, pero al realizar la prueba, apareció: Error en tiempo real '453': el punto de entrada de la DLL GetDc no se puede encontrar en el usuario32. ¿Qué pasó?

Utilicé VB para hacer una lupa, pero al realizar la prueba, apareció: Error en tiempo real '453': el punto de entrada de la DLL GetDc no se puede encontrar en el usuario32. ¿Qué pasó?

Punto de entrada no encontrado en los siguientes casos:

1, no distingue entre mayúsculas y minúsculas.

En Win32, las funciones de DLL y VB deben tener el mismo caso.

2. No se declara ninguna función de entrada.

Necesita agregar una función de entrada en formato *. Archivo DLL def, por ejemplo:

Exportar

SetData @1

GetData @2

Para que el programa VB pueda acceder a SetData y Función ObtenerDatos. Entre ellos, @1 y @2 son los números de referencia de estas dos funciones, que generalmente no se usan en VB. (Consulte QA003500 "Al crear una DLL, ¿no es posible sin un archivo def?").

3.

Al compilar una función en C++, el nombre de la función se convertirá. Por ejemplo, kk (doble k) en la DLL se convertirá a _kk@8. Hay dos soluciones:

(1) Si no utiliza clases de C++, puede hacerlo. archivo cpp a. c, y no harás esta conversión.

(2) Agregue "c" externa antes de la definición de la función, como:

"c" externa void _stdcall kk (doble k)