elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Error C2664: 'WNetGetUserW' que puede ser?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Error C2664: 'WNetGetUserW' que puede ser?  (Leído 1,940 veces)
L0Ko

Desconectado Desconectado

Mensajes: 43


Ver Perfil
Error C2664: 'WNetGetUserW' que puede ser?
« en: 19 Julio 2012, 19:46 pm »

Hola les comento encontre este codigo en http://todocporelinv.blogspot.mx/2012/02/c-win32-obtener-el-nombre-de-red-por.html
Pasa que necesito saber el nombre de red a la que estoy conectado ya sea por cable o inalambrica (SSID), y aprovecho para preguntar  ;D  ¿como saber la direccion mac de mi "Modem"? ( no del computador).

Para saber el nombre de red, entonces instale Visual C++ pero me manda algunos errores, he agregado la linea
Código:
#pragma comment(lib, "mpr.lib")
  pero nos e si en realidad la encuentra Visual C++,  aca les dejo el codigo de Visaul C++
Código:
#include <stdafx.h>
    #include <windows.h>
    #include <iostream>
    #pragma comment(lib, "mpr.lib")
    using namespace std;

     
    int main()
    {
        char Name[255];
        char Test[255];
        DWORD size=255;
        if (WNetGetUser(Test,Name,&size)==NO_ERROR)
        {
            cout << Name << endl;
        }
        system("PAUSE");
        return EXIT_SUCCESS;
     
    }


Aca les dejo los errores que lanza el Visual C++

Citar
1>namered.cpp
1>.\namered.cpp(34) : error C2664: 'WNetGetUserW' : no se puede convertir el parámetro 1 de 'char [255]' a 'LPCWSTR'

1>        Los tipos señalados no están relacionados; la conversión requiere reinterpret_cast, conversión de estilo de C o conversión de estilo de función

1>El registro de compilación se guardó en el "file://c:\Users\v2r3\Documents\Visual Studio 2008\Projects\namered\namered\Debug\BuildLog.htm"

1>namered - 1 errores, 0 advertencias
========== Generar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========

Pero leyendo en la pagina del autor da indicaciones sobre Code Block entonces lo descargue cree un nuevo proyecto pero al tratar de ingresar el mpr.lib no lo pude encontrar no se si sea posible descargarlo? el codigo es el mismo solo qeu este no me manda ningun error solo aparece en ejecucion esto:

"Proces returned 0 <0x0> execution time:2.99 s"



No se si alguien pueda correrlo y ver como va... espero sugerencias gracias
salu2 ;-)




En línea

Khronos14


Desconectado Desconectado

Mensajes: 443


A lie is a lie


Ver Perfil WWW
Re: Error C2664: 'WNetGetUserW' que puede ser?
« Respuesta #1 en: 19 Julio 2012, 21:01 pm »

Si miras el error te pone claramente que tienes un problema de conversión de tipos. El primer parámetro tiene que ser de tipo wchar_t.

http://msdn.microsoft.com/en-us/library/windows/desktop/aa385476(v=vs.85).aspx

Saludos.


En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Error C2664: 'WNetGetUserW' que puede ser?
« Respuesta #2 en: 19 Julio 2012, 23:05 pm »

Busca y comenta #define UNICODE o #define _UNICODE para que trabajes con el formato ANSI y no el UNICODE

* Para que te arroje el resultado de la API debes igualarlas a {}... es decir remover el contenido basura (limpiarlas).

Código:

#include <windows.h>
#include <iostream>
#pragma comment(lib, "mpr.lib")
using namespace std;


int main()
{
    char Name[255] = {};
    char Test[255] = {};
    DWORD size = 255;

    if (WNetGetUser(Test, Name, &size) == NO_ERROR) {
        cout << Name << endl;
    }

    return EXIT_SUCCESS;
}


Dulces Lunas!¡.
« Última modificación: 19 Julio 2012, 23:15 pm por BlackZeroX (Astaroth) » En línea

The Dark Shadow is my passion.
L0Ko

Desconectado Desconectado

Mensajes: 43


Ver Perfil
Re: Error C2664: 'WNetGetUserW' que puede ser?
« Respuesta #3 en: 20 Julio 2012, 18:22 pm »

Muchas gracias BlackZeroX

Busque lo que mencionabas pero no tube exito, entonces fui a propiedades del prollecto
juego de caracteres y puse como ninguno, entonces me ha imprimido bien el codigo que has modificado...

Bueno el punto aca es que no me dio la informacion que necesitaba, me da el nombre de mi equipo mas no el nombre de red a al que esta conectado SSID, en C# esto es posible pero el punto esta enque lo necesito realizar con java y bueno pense en JNI es por eso que he utilizado C++...

Aunque si hubiera la posibilidad de utilizar e ejecutable de C#  :rolleyes:  (BAAAh no lo creo )

Bueno haber si me dan una idea...

Salu2 loKos!!!
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Error C2664: 'WNetGetUserW' que puede ser?
« Respuesta #4 en: 20 Julio 2012, 20:38 pm »

De hecho esa API dice claramente que te retorna el nombre de usuario en la RED mas no el SSID de la red...

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
no entiendo este error en asm con gcc, que puede estar mal?
Programación C/C++
Belial & Grimoire 2 3,019 Último mensaje 17 Mayo 2010, 11:33 am
por Foxy Rider
error C2664: 'DialogBoxParamA'
Programación C/C++
xkiz ™ 3 2,358 Último mensaje 13 Junio 2010, 13:55 pm
por Eternal Idol
Ayuda con C++ 2010 error C2664
Programación C/C++
BlackM4ster 1 2,397 Último mensaje 26 Julio 2012, 11:33 am
por Eternal Idol
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines