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

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [Dev c++ 4.9.9.2] Linker error - intentando hacer extension DLL
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Dev c++ 4.9.9.2] Linker error - intentando hacer extension DLL  (Leído 2,483 veces)
spreadhaz

Desconectado Desconectado

Mensajes: 2


Ver Perfil
[Dev c++ 4.9.9.2] Linker error - intentando hacer extension DLL
« en: 25 Febrero 2016, 07:41 am »

Encontré un artículo en internet sobre un código que añade un puerto UPnP (Universal Plug and Play) En el siguiente enlace

Easy Port Forwarding and Managing Router with UPnP

Lo necesito en aplicación o en extension dll, primero intento usarlo como extensión DLL ya que es más util de esa forma, pero obtengo estos errores al compilar:

Citar
[Linker error] undefined reference to `UPNPNAT::init(int, int)'
[Linker error] undefined reference to `UPNPNAT::discovery()'
[Linker error] undefined reference to `UPNPNAT::add_port_mapping(char*, char*, unsigned short, unsigned short, char*)'
ld returned 1 exit status
 C:\Users\...\Makefile.win [Build Error]  [UPNP.dll] Error 1

Aqui el: dllmain.ccp

Código:
#include "dll.h"
#include <windows.h>

export double AddPortMap()
{
       UPNPNAT nat;
       nat.init(5,10);
       if(!nat.discovery())
       {
             return 0;
       }
       if(!nat.add_port_mapping("NewPort", "192.168.1.65", 1234, 1234, "TCP"))
       {
             return 0;
       }
       return 1;
}


Aqui el: dll.h

Código:
#ifndef _DLL_H_
#define export extern "C" __declspec (dllexport)
#define _DLL_H_

#include <string>
#include <vector>

#pragma   warning(disable:   4251)

#define DefaultTimeOut  10
#define DefaultInterval 200

class __declspec (dllexport) UPNPNAT
{
public:
 
    bool init(int time_out=DefaultTimeOut,int interval=DefaultInterval); //init
    bool discovery();//find router

    /****
     **** _description: port mapping name
     **** _destination_ip: internal ip address
     **** _port_ex:external: external listen port
     **** _destination_port: internal port
     **** _protocal: TCP or UDP
     ***/
    bool add_port_mapping(
             char * _description, char * _destination_ip, unsigned short int _port_ex,
             unsigned short int _destination_port, char * _protocal);//add port mapping

    const char * get_last_error(){ return last_error.c_str();}//get last error
private:
    bool get_description();            //
    bool parser_description();        //
    bool tcp_connect(const char * _addr,unsigned short int _port);
    bool parse_mapping_info();
    int udp_socket_fd;
    int tcp_socket_fd;
    typedef enum
    {
        NAT_INIT=0,
        NAT_FOUND,
        NAT_TCP_CONNECTED,
        NAT_GETDESCRIPTION,
        NAT_GETCONTROL,
        NAT_ADD,
        NAT_DEL,
        NAT_GET,
        NAT_ERROR
    } NAT_STAT;
    NAT_STAT status;
    int time_out;
    int interval;
    std::string service_type;
    std::string describe_url;
    std::string control_url;
    std::string base_url;
    std::string service_describe_url;
    std::string description_info;
    std::string last_error;
    std::string mapping_info;
};
#endif /* _DLL_H_ */

¿Algún consejo que me puedan dar?


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: [Dev c++ 4.9.9.2] Linker error - intentando hacer extension DLL
« Respuesta #1 en: 25 Febrero 2016, 07:53 am »

que opciones le estás dando al linker? al parecer te falta linkear alguna librería


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
spreadhaz

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: [Dev c++ 4.9.9.2] Linker error - intentando hacer extension DLL
« Respuesta #2 en: 25 Febrero 2016, 08:26 am »

AH , tenia "Link an Objective C program: No", lo cambié a "Yes"
Y ahora solo me tira este error:

"cannot find -lobjc "
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Help, porfa: [Linker error] undefined reference to '.......
ASM
codeliber 5 8,718 Último mensaje 3 Octubre 2009, 00:26 am
por Eternal Idol
SDL: ERROR EN LINKER
Programación C/C++
Puntoinfinito 2 2,674 Último mensaje 12 Noviembre 2012, 20:30 pm
por NeoB
[Linker error] undefined reference to `i'
ASM
Boss99 1 3,879 Último mensaje 23 Noviembre 2012, 01:17 am
por Eternal Idol
[Linker error] undefined reference to `NombreFuncion()'
Programación C/C++
AnungUnRama 3 4,019 Último mensaje 29 Mayo 2013, 14:56 pm
por rir3760
Ayuda con error LINKER WARNING
Programación C/C++
Renzo21 7 3,497 Último mensaje 7 Febrero 2014, 02:11 am
por Yoel Alejandro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines