Así que no hago muchas llamadas a Win32, pero recientemente tuve que usar las funciones GetFileTime()
y SetFileTime()
. Ahora bien, aunque Win98 y versiones posteriores no son compatibles oficialmente con mi programa, la gente lo usa allí de todos modos, y trato de mantenerlo lo más utilizable posible. Me preguntaba qué pasaría, ya que esas funciones no existen en los sistemas anteriores a NT, ¿recibirán un mensaje de error de algún tipo, por ejemplo, porque en ese caso agregaré una verificación del sistema operativo? GraciasLlamar a la función NT en el sistema pre-NT
Respuesta
Si llamas a las funciones directamente, entonces tu programa no se cargará en Win98.
Lo que puede hacer es usar LoadLibrary()
/GetProcAddress()
para obtener un puntero a GetFileTime()
/SetFileTime()
. En Win98, esto fallará y le dará un puntero nulo que puede probar e ignorar. En 2000 y más adelante obtendrá un puntero que luego podrá usar.
Es un dolor, pero es la única solución que conozco.
Aquí es un ejemplo de conseguir la función UpdateLayeredWindow si existe:
typedef BOOL (WINAPI* UpdateLayeredWinFunc) (HWND, HDC, POINT*, SIZE*, HDC, POINT*, COLORREF, BLENDFUNCTION*, DWORD);
UpdateLayeredWinFunc updateLayeredWindow = 0;
HMODULE user32Mod = GetModuleHandle (_T("user32.dll"));
updateLayeredWindow = (UpdateLayeredWinFunc) GetProcAddress (user32Mod, "UpdateLayeredWindow");
Creo que se obtiene un mensaje de error en la línea de "El punto de entrada del procedimiento (nombre) no pudo ser localizado en (DLL)", similar º el que se muestra:
example http://img266.imageshack.us/img266/3762/error2pm1.png
se podría llamar FindFirstFile()
en lugar de GetFileTime()
. Sin embargo, no sabría una alternativa para SetFileTime()
.
- 1. Llamar a la función javascript en iframe
- 2. Llamar a la función periódicamente en Java
- 3. Cómo llamar a la función C# en el procedimiento almacenado
- 4. Cómo llamar a la función en el temporizador ASP.NET MVC
- 5. Necesito llamar a la función original desde la función desviada
- 6. Llamar a la función JQuery desde GWT
- 7. Llamar a la función php desde JavaScript
- 8. ¿Llamar a la función PHP desde url?
- 9. Comunicación entre la aplicación delphi y el controlador del sistema de Windows NT
- 10. ¿Función para llamar a una función repetidamente?
- 11. Cómo llamar a la función de JavaScript desde el servlet
- 12. Llamar a la función Lua sin ejecutar el script
- 13. Llamar a función recursiva en JavaScript
- 14. jQuery - Llamar a una función en línea
- 15. cómo llamar a una función javascript en el marco superior?
- 16. función En tubería llamar a otra función pipeline
- 17. Llamar a una función basada en una cadena que contiene el nombre de la función
- 18. Llamar a una función desde una cadena con el nombre de la función en Clojure
- 19. Usar una cadena para llamar a la función en Python
- 20. cómo llamar a la función en ejecutable desde mi biblioteca?
- 21. Llamar a la función dinámica con parámetros dinámicos en Javascript
- 22. ¿Cómo llamar a la función anónima en C#?
- 23. haskell: error al intentar llamar a putStrLn en la función
- 24. Cómo llamar a la función WinAPI SetDllDirectory() en Delphi?
- 25. ¿Cómo llamar a la función anónima actual en PHP?
- 26. Llamar a la función anidada cuando se pasa el nombre de la función como una cadena
- 27. ¿Cómo llamar a la función javascript asignada a una variable?
- 28. Llamar a la función javascript de la clase Java (Groovy)
- 29. C++: Llamar a la función virtual de la clase derivada
- 30. Llamar a la función javascript dentro de la etiqueta HTML
De la investigación que he hecho parece que no hay una, ¡aunque gracias! – SteveL