Problema con argv

Iniciado por winroot, 9 Octubre 2010, 16:38 PM

0 Miembros y 1 Visitante están viendo este tema.

winroot

Buenas!
Creo que algo de código vale mas que mil palabras :xD
Código (cpp) [Seleccionar]

#include<iostream>
#include<stdlib>
using namespace std;
int main(int argc,char* argv[])
{
if(argv[1]=="hola") cout <<"Es hola" <<endl;
else cout <<"No es hola" <<endl;
cin.get();
return 0;
}

a.exe hola
Salida:
No es hola
Bien, se supone que, si argv[1]=="hola" salida: es hola.
Pero...¿Porqué esto no es así?
Me di cuenta de esto cuando traté de escribir un programa muy simple que use la api de windows RegQueryInfoKey, que mostrara la última escritura hecha en una key que se le pasara como parámetro.
La idea era tener una variable gloval root del tipo HKEY,Y según aargv[1] fuera hklm,hkcu..., asignar a la variable root HKEY_LOCAL_MACHINE,etc.
Luego usaría la función RegOpenKeyEx, para abrir el árvol que esté en root, seguido de la key pasada en argv[2].
Bueno, gracias por leer y abrazo.
Mi blog sobre programación y seguridad informática:
http://win-root.blogspot.com

Littlehorse

Las cadenas no se comparan de esa manera.

strncmp

Saludos
An expert is a man who has made all the mistakes which can be made, in a very narrow field.

winroot

Mi blog sobre programación y seguridad informática:
http://win-root.blogspot.com