Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Borito30

#161
Cita de: ivancea96 en 12 Marzo 2017, 17:28 PM
En VS, click derecho en el proyecto, propiedades.
Ahí tienes, dentor de "Configuration properties", la pestaña "C/C++ -> General". Dentro de esta, Additional include directories.

Luego, para el linker, si el proyecto se va a linkear, debajo de "C/C++", tienes "Linker". Ene sta, teines "General" también. Ahí, "Additional library dependencies". Luego, en "Linker -> Input", tienes "Additional dependencies".
Vale en visual studio lo inclui asi:


Pero me devuelve el siguiente error:
Error 30 error LNK1181: no se puede abrir el archivo de entrada 'ssleay32' C:\Users\moh\Desktop\gloox\LINK gloox-1.0

Y apunta aqui:
#include <openssl/sha.h>
Pero lo apunte como me dijistes poniendo solamente include no se el motivo de este error. Gracias por tu ayuda!
#162
Estoy usando openssl en el proyecto y openssl funciona y se añade correctamente, las librerias las tengo incluidas aqui:


Pero cuando voy a compilar mi proyecto me devuelve el siguiente error:
||=== Build: Debug in main (compiler: GNU GCC Compiler) ===|
C:\Users\Androide\Desktop\gloox\libgloox.a(clientbase.o):clientbase.cpp|| undefined reference to `FreeCredentialsHandle@4'|
C:\Users\Androide\Desktop\gloox\libgloox.a(clientbase.o):clientbase.cpp|| undefined reference to `DeleteSecurityContext@4'|
C:\Users\Androide\Desktop\gloox\libgloox.a(clientbase.o):clientbase.cpp|| undefined reference to `FreeCredentialsHandle@4'|
C:\Users\Androide\Desktop\gloox\libgloox.a(clientbase.o):clientbase.cpp|| undefined reference to `DeleteSecurityContext@4'|
C:\Users\Androide\Desktop\gloox\libgloox.a(clientbase.o):clientbase.cpp|| undefined reference to `AcquireCredentialsHandleW@36'|
C:\Users\Androide\Desktop\gloox\libgloox.a(clientbase.o):clientbase.cpp|| undefined reference to `InitializeSecurityContextA@48'|
||error: ld returned 1 exit status|
||=== Build failed: 7 error(s), 0 warning(s) (0 minute(s), 1 second(s)) ===|


Pienso a lo mejor se deba a que tengo que agregar otras librerías diferentes de openssl? El programa es el siguiente:
#include <client.h>
#include <messagehandler.h>
#include <message.h>
#include <presencehandler.h>
#include <connectionlistener.h>
#include <ctime>
#include <iostream>
#include <string>
using namespace std;
using namespace gloox;
//my one
const string LOGIN = "gmail.com";
ostream& operator<<(ostream& os, Message::MessageType type) {
   switch (type) {
       case Message::Chat:
           os << "Chat";
           break;
       case Message::Error:
           os << "Error";
           break;
       case Message::Groupchat:
           os << "Groupchat";
           break;
       case Message::Headline:
           os << "Headline";
           break;
       case Message::Normal:
           os << "Normal";
           break;
       case Message::Invalid:
           os << "Invalid";
           break;
       default:
           os << "unknown type";
           break;
   }
return os;
}

ostream& operator<<(ostream& os, const Message& stanza) {
   os << "type:'" << stanza.subtype() <<  "' from:'" << stanza.from().full() << "' body:'" << stanza.body() << "'";
   return os;
}

class Bot : public MessageHandler,
           /*public PresenceHandler,*/
           public ConnectionListener
           /*,public RosterListener*/{
public:
  Bot(){
     JID jid( "mmaaria123@gmail.com/home" );
     client = new Client( jid, "mmaaria123" );
     client->registerConnectionListener( this );
     client->registerMessageHandler( this );
     client->connect(true);
  }

   virtual void onConnect() {
       cout << "It is connected good:)"  << endl;
       //sleep(5);
       client->disconnect();
   }

   virtual void onDisconnect(ConnectionError e) {
       cout << "ConnListener::onDisconnect() " << endl;
   }

   virtual bool onTLSConnect(const CertInfo& Info) {

      time_t tm = Info.date_from;
      time_t tm_to = Info.date_to;
      cout << "\t Certificate information to " << LOGIN << endl;
      cout << "\t========================================" << endl;
     // number code << "\tServer status: " << Info.status;
       if (Info.status !=0)
           {
           cout << "\t !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << endl;
           cout << "\t !!!  The certificate has a problem !!!" << endl;
           cout << "\t !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << endl;
           // parsing binary Status Cert
           if ((CertInvalid) & Info.status)
               {
                   cout << "\t- The certificate is not trusted " << endl;
               }
           if (( CertSignerUnknown) & Info.status)
               {
                   cout << "\t- The certificate hasn't got a kown issuer" << endl;
               }
           if ((CertRevoked) & Info.status)
               {
                   cout << "\t- The certificate has been revoked " << endl;
               }
           if ((CertExpired) & Info.status)
               {
                   cout << "\t- The certificate has expired " << endl;
               }
           if ((CertNotActive) & Info.status)
               {
                   cout << "\t- The certificate is not yet active " << endl;
               }
           if ((CertWrongPeer) & Info.status)
               {
                   cout << "\t- The certificate has not issued for the peer we're connected to " << endl;
               }
           if ((CertSignerNotCa) & Info.status)
               {
                   cout << "\t- The signer is not CA " << endl;
               }
           cout << endl;
           }
           // end parsing
       else
           // if Info.status=0 sertificate is valide
           cout << " *** Cert is OK!" << endl;

      cout << "\tChain: " << Info.chain << endl;
      cout << "\tIssuer: " << Info.issuer << endl;
      cout << "\tServer: " << Info.server << endl;
      cout << "\tCert date from: " << ctime(&tm);
      cout << "\tCert date to: " << ctime(&tm_to);
      cout << "\tProtocol: " << Info.protocol << endl;
      cout << "\tCipher: " << Info.cipher << endl;
      cout << "\tMAC: " << Info.mac << endl;
      cout << "\tCompression: " << Info.compression << endl;
      cout << "\t========================================" << endl;
    return true;

   }

  virtual void handleMessage( const Message& stanza,
                              MessageSession* session = 0 ){
    Message msg(Message::Chat, stanza.from(), "hello world" );
    client->send( msg );
  }

private:
  Client* client;
};

int main( int argc, char* argv[] ){
   cout << "1" << endl;
   Bot b;
}


Gracias con antelacion.
#163
Cita de: ivancea96 en 12 Marzo 2017, 17:39 PM
En directorio de includes, debes poner "include", no "include/openssl". Sí, las cabeceras están en "include/openssl", pero accedes a ellas poniendo #include <openssl/aes.h>.
Esto se hace o para diferenciar diferentes librerías que puedan tener cabeceras con el mismo nombre, o separar en carpetas, sin más. En cualquier caso, y de forma general, siempre pondrás como directorio "include", y no la carpeta que pueda tener dentro. Además, en este caso estás casi obligado, ya que las propias cabeceras utilizan la fórmula #include <openssl/aes.h>.
Vale ahora lo entendi que tengo que poner en search directories compiler la ruta include es decir C:\openssl-1.0.1c_static_w32_mingw\include para que me coja openssl/cabecera.h solo que en mi proyecto tendre que indicarlo de esta manera:
#include <openssl/aes.h>
Ahora me queda mucho más claro. Revisare en visual y te comento me resolvistes el problema gracias.
#164
Cita de: ivancea96 en 12 Marzo 2017, 16:33 PM
El error es auto-explicativo. Esa cabecera tiene un include dentro que parece no existir.
Mira el código de la cabecera, mira e include, y mira si existe. Si existe, tal vez hayas puesto algo mal en la configuración del IDE al compilar.

Aunque bueno, alerta spoiler:
Probablemente pusiste que el directorio de los includes es "include/openssl". Eso es incorrecto. El directorio de los include es "include", sin más.
Para incluir cabeceras de OpenSSL, tienes que poner "#include <openssl/...>". Por ejemplo, #include <openssl/aes.h>

Si ves el código de la cabecera del error, verás que tiene un: #include <openssl/opensslconf.h>

Pero si esque te fijas yo tengo las cabeceras dentro del directorio openssl que esta dentro del directorio include por eso puse esa ruta o estaría mal? Gracias!
#165
Este es el error que me aparece en mingw:
||=== Build: Debug in main (compiler: GNU GCC Compiler) ===|
C:\openssl-1.0.1c_static_w32_mingw\include\openssl\aes.h|55|fatal error: openssl/opensslconf.h: No such file or directory|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
#166
Una pregunta ya puedo usar openssl pero porque cuando el siguiente ejemplo pongo una cabecera de openssl ej:
#include <iostream>
#include <aes.h>
using namespace std;

int main()
{
    cout << "Hello world!" << endl;
    return 0;
}

Incluyo esta cabecera:
#include <aes.h>
Me devuelve este error gracias por su ayuda:
||=== Build: Debug in main (compiler: GNU GCC Compiler) ===|
C:\openssl-1.0.1c_static_w32_mingw\include\openssl\aes.h|55|fatal error: openssl/opensslconf.h: No such file or directory|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

#167
Windows 10 es más estable y windows 7 mucho más rapido y amigable. ¿Cuál pensais que es mejor?

Para mi el mejor era XP pero desde que no se puede actualizar los frameworks y dicen que es inseguro no cuenta para mi  :(
#168
Cita de: Randomize en 12 Marzo 2017, 15:11 PM
Si nos ponemos ya un centro de datos plagado de servers y terminales  :P
Bueno hay antivirus que te cazan los ejecutables que crean reglas en el registro con eso tmb cazas el 80% de malware ya que si te crea algo en el registro cosa mala  :-X pero como sea un gusano tendrás que aislarlo
ombre directamente volvemos al ordenador de toda la vida:

Más bien temería de lo que me pudiese incrustar usando código caves pero cuanto más precauciones mejor.
#169
Cita de: wolfbcn en 12 Marzo 2017, 14:11 PM
GNU/Linux tienen fama de ser mucho más seguras
Si pero en linux tambien hay un monton de virus. Simplemente con que te metan un virus en c++ y sea multiplataforma te infecta windows y linux.. no se porque pensaran que linux sea mas seguro si a cada momento sale un fallo para elevación de privilegios.. por poner un ejemplo.
#170
Pues si teneis razon lo ideal es un virtual ya que en linux tambien hay un montón de virus y si el virus es multiplataforma aunque lo arranque con wine en linux y tenga formato pe estaré infectado. Entonces la mejor solucion es usar una virtual con carpeta compartida y la maquina sin conexión a internet y ya que ejecute. Y la información siempre en un ordenador aparte y usarlo con control.