Programación General > Visual C++
usar api windows con visual c++ 2008 .net
killerghosts:
Pues eso queria saber si se podia utilizar las funciones api de windows con visual c++ .net 2008 gracias, inclui la libreria windows.h pero al ir a utilizar alguna funcion como shellexecuteex me daba error ya se que se puede utilizar un objeto llamado process pero yo quiero utilizar las funciones api gracias.
rfog:
Claro que puedes, pero como somos adivinos y tenemos la bola de cristal recién recargada puedo decirte que lo más seguro es que se te haya olvidado de incluir el fichero shellapi.h y la biblioteca de importación shell32.lib...
Eso o nos pones el error que te da y vemos qué está pasando...
killerghosts:
primero gracias por tu contestacion, hice lo que me dijiste inclui las librerias siguientes:
#include <shell32.lib>
#include <windows.h>
#include <shellapi.h>
y el error que me da ahora al compilar es el siguiente:
fatal error C1083: No se puede abrir el archivo incluir: 'shell32.lib': No such file or directory
bueno y cuando soluciones esto, realmente podre utilizar funciones de la api de windows, y funciones .net ?? conjuntamente, por cierto ya se que soy un pesao, me gustaria acceder al hardware, del ordenador puerto paralelo, etc memoria eso se puede hacer, c++ y desde msdos era muy facil incluso utilizaba codigo ensamblador sin problemas en visual c++ 2008 se podria joder no me queda respiracion es broma muchas gracias
rfog:
--- Cita de: "killerghosts" ---primero gracias por tu contestacion, hice lo que me dijiste inclui las librerias siguientes:
#include <shell32.lib>
#include <windows.h>
#include <shellapi.h>
y el error que me da ahora al compilar es el siguiente:
fatal error C1083: No se puede abrir el archivo incluir: 'shell32.lib': No such file or directory
bueno y cuando soluciones esto, realmente podre utilizar funciones de la api de windows, y funciones .net ?? conjuntamente, por cierto ya se que soy un pesao, me gustaria acceder al hardware, del ordenador puerto paralelo, etc memoria eso se puede hacer, c++ y desde msdos era muy facil incluso utilizaba codigo ensamblador sin problemas en visual c++ 2008 se podria joder no me queda respiracion es broma muchas gracias
--- Fin de la cita ---
Madremía, qué chorro preguntas sin puntuación y sin nada...
Te falta la ruta a shell32.lib. Supongo que ese fichero lo habrás puesto en las opciones del enlazador, no en un include.
A) Puedes usar funciones .NET y nativas si activas la opción /CLR del compilador (o creas un proyecto del tipo CLR).
B) No puedes acceder al hardware desde Win32, no sin un driver específico.
C) El acceso al puerto paralelo se hace con "CreateFile" pasando el nombre del puerto en lugar de un fichero.
D) A memoria no puedes acceder, ni siquiera directamente a una dirección virtual del espacio de direcciones de tu aplicación, menos aún al físico real.
killerghosts:
Bien te digo lo que he hecho y los errores que me salen simplemente he dibujado un formulario normal con un boton y quiero que cuando le de al boton ejecute un programa, en este caso el cmd.exe
he incluido estas librerias
#include <windows.h>
#include <shellapi.h>
he puesto /clr en las opciones de enlazado y he configurado los directorios donde tiene que encontrar librerias y bibliotecas el codigo que he puesto que ejecute en el evento del boton es el siguiente
LPSHELLEXECUTEINFO puntero; // declarar el puntero
puntero=new SHELLEXECUTEINFO; // CREAR LA INSTANCIA
strcpy((char *)puntero->lpVerb,"open"); // darle valor al parametro de como tiene que actuaar
strcpy((char *)puntero->lpFile,"cmd.exe"); // dar el nombre del programa
ShellExecuteEx(puntero); // ejecutar programa
y los errores que da al intentar compilar son los siguientes:
projectsprueba_apiprueba_apiForm1.h(83) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> C:Archivos de programaMicrosoft Visual Studio 9.0VCincludestring.h(74) : vea la declaración de 'strcpy'
1>c:documents and settingsmanuel santanamis documentosvisual studio 2008projectsprueba_apiprueba_apiForm1.h(84) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> C:Archivos de programaMicrosoft Visual Studio 9.0VCincludestring.h(74) : vea la declaración de 'strcpy'
1>Vinculando...
1>prueba_api.obj : error LNK2028: se hace referencia al símbolo (token) sin resolver (0A00000F) "extern "C" int __stdcall ShellExecuteExW(struct _SHELLEXECUTEINFOW *)" (?shellExecuteExW@@$$J14YGHPAU_SHELLEXECUTEINFOW@@@Z) en la función "private: void __clrcall prueba_api::Form1::Form1_Load(class System::Object ^,class System::EventArgs ^)" (?Form1_Load@Form1@prueba_api@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z)
1>prueba_api.obj : error LNK2019: símbolo externo "extern "C" int __stdcall ShellExecuteExW(struct _SHELLEXECUTEINFOW *)" (?ShellExecuteExW@@$$J14YGHPAU_SHELLEXECUTEINFOW@@@Z) sin resolver al que se hace referencia en la función "private: void __clrcall prueba_api::Form1::Form1_Load(class System::Object ^,class System::EventArgs ^)" (?Form1_Load@Form1@prueba_api@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z)
1>C:Documents and SettingsManuel SantanaMis documentosVisual Studio 2008Projectsprueba_apiDebugprueba_api.exe : fatal error LNK1120: 2 externos sin resolver
1>El registro de compilación se guardó en el "file://c:Documents and SettingsManuel SantanaMis documentosVisual Studio 2008Projectsprueba_apiprueba_apiDebugBuildLog.htm"
1>prueba_api - 3 errores, 2 advertencias
========== Generar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========
bueno eso es lo que me pasa oye y gracias por responderme y tener paciencia gracias otra vez
Navegación
[#] Página Siguiente
Ir a la versión completa