• Lunes 6 de Mayo de 2024, 10:40

Mostrar Mensajes

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


Mensajes - orosello

Páginas: [1]
1
C# / Conectar A Una Unidad De Red
« en: Jueves 31 de Mayo de 2007, 21:46 »
Hola a todos:

           He esatdo buscando como conectarme a una unidad de red desde mi aplicación, pero hasta ahora no podido logralo. Agluien sabe como puediera hacer esto, o algun articulo que me puedira estudiar para logralo.


Saludos..

2
C# / Recuperar Valores De Una Dll En C++
« en: Jueves 17 de Mayo de 2007, 21:47 »
Hola:
     Estoy trabajando con una dll ( desarrollada en Vs C++) desde C# y necesito recuperar una valor (DWORD) de una funcion  desde mi clase C#.

Utilizo lo siguiente

[DllImport("MiDll.dll")]
private static extern int GetId(IntPtr Handle);

Pero siempre retorna 0 dicha funcion.


Alguien sabe cual podia ser el problema, o de que manera lo pudiera hacer.



Saludos orosello.

3
Visual C++ / Re: Acceso A Datos Desde Una Dll En C++
« en: Viernes 11 de Mayo de 2007, 10:09 »
Hola:

       Estuve revisando lo que me dijiste, y lo que no sirve es el modo de hacer la conexion a la base de datos. Tu sabes alguna manera diferente de hacer esto en la dll para poder insertar los  datos que necesito?

Saludos

4
Visual C++ / Re: Acceso A Datos Desde Una Dll En C++
« en: Miércoles 9 de Mayo de 2007, 06:20 »
Hola: JuanK

     Mira lo que hacemos es lo siguiente:
        1-  Crear una clase donde importamos la dll de ADO
Código: Text
  1.  
  2. #import "C:\\Program Files\\Common Files\\System\\ado\\msado15.dll" no_namespace rename("EOF","adoEOF")
  3.  
  4.  
       2- Esta tiene un método
Código: Text
  1.  
  2.  
  3. const LPCSTR STRING_CONNECTION = ..............
  4.       BOOL Conectar(_ConnectionPtr& pCone)
  5. {
  6.     _bstr_t bstrCone(STRING_CONNECTION);
  7.     try
  8.     {
  9.          pCone.CreateInstance (__uuidof(Connection));
  10.          pCone->Open(bstrCone ,_bstr_t (""), _bstr_t (""), adModeUnknown );
  11.          return TRUE;
  12.       }
  13.   catch (_com_error& ce)  {  return FALSE;  }
  14.   catch(...)   {  MessageBox(NULL,"Ah ocurrido otro error","Error",MB_OK);
  15.    return FALSE;  }
  16. }
  17.  
  18.  
       3- Luego yo incluyo esta clase en la stdafx.h que la uso en mi dll. Posteriormente en mi dll creo la siguiente funcion

Código: Text
  1.  
  2. BOOL InsertPerson()
  3. {
  4.   BOOL bRespuesta = TRUE;
  5.   _ConnectionPtr pAdoCone;
  6.   _RecordsetPtr Rs(__uuidof(Recordset));
  7.   if(Conectar(pAdoCone))
  8.   {
  9.     Rs->PutRefActiveConnection(pAdoCone);
  10.     _bstr_t bstrSql("Insert Into Client (id,name) Values (3,'name')");
  11.     Rs->Open(bstrSql, vtMissing, adOpenStatic, adLockReadOnly, adCmdUnknown);
  12.     SetCursor(LoadCursor(NULL,IDC_WAIT));
  13.     return bRespuesta;
  14.   }
  15. }
  16.  
  17.  
         

    Ahora pero cuando ejecuto mi aplicación y utilizo la dll, solo inserta en la BD una sola vez, e incluso deja de ejecutar las restantes  funciones de la aplicación.

Nota: Si me pudieras orientar sobre otra posible solución....

5
C/C++ / Acceso A Dato
« en: Martes 8 de Mayo de 2007, 04:27 »
Hola:
     Estoy tratando de hacer una DLL en la que necesito insertar en una BD en determinados eventos. De la única forma que he podido insertar es utilizando la siguiente función...
Código: Text
  1.  
  2. BOOL InsertPerson()
  3. {
  4.   BOOL bRespuesta = TRUE;
  5.   _ConnectionPtr pAdoCone; // Objeto para la conexión
  6.   _RecordsetPtr Rs(__uuidof(Recordset)); // Un objeto recordset
  7.   if(Conectar(pAdoCone))
  8.   {
  9.     Rs->PutRefActiveConnection(pAdoCone);
  10.     _bstr_t bstrSql("Insert Into Person (id,name) Values (3,'name')");
  11.     Rs->Open(bstrSql, vtMissing, adOpenStatic, adLockReadOnly, adCmdUnknown);
  12.     SetCursor(LoadCursor(NULL,IDC_WAIT));
  13.     return bRespuesta;
  14.   }
  15.  
  16.  


Código: Text
  1.  
  2. BOOL Conectar(_ConnectionPtr& pCone)
  3. {
  4.     _bstr_t bstrCone(STRING_CONNECTION);
  5.     try
  6.     {
  7.         pCone.CreateInstance (__uuidof(Connection));
  8.         pCone->Open(bstrCone ,_bstr_t (""), _bstr_t (""), adModeUnknown );
  9.         return TRUE;
  10.      }
  11.      catch (_com_error& ce) //¿Ocurrió una excepción?
  12.      {
  13.          return FALSE;
  14.       }
  15.       catch(...)
  16.       {
  17.     MessageBox(NULL,"Ah ocurrido otro error","Error",MB_OK);
  18.            return FALSE;
  19.       }
  20. }
  21.  
  22.  



pero cada vez que utilizo la función en los diferentes eventos que necesito insertar no continua con la ejecución de la aplicación, es decir que ocurre ninguno de los eventos que tengo programado (he probado estos mismos eventos escribiendo para un fichero y funcionan perfectamente).

Alguien sabe lo que puede estar pasando

Saludos Orosello

6
Visual C++ / Re: Obtener Pid De Un Proceso
« en: Lunes 7 de Mayo de 2007, 20:09 »
Fíjate bien que es #include <windows.h> y tienes puesto #include "windows.h" entre comillas y es entre <>.

7
Visual C++ / Acceso A Datos Desde Una Dll En C++
« en: Lunes 7 de Mayo de 2007, 19:52 »
Hola estoy intenetando acceder a una base de datos ya sea en SQL o en Acces desde una dll hecha en c++, pero cuando tratro de usar el namespace Sqlclient en el caso de acceder al servidor SQL me dice que no es un namespace válido. También traté de hacerlo importando directamente la dll ado y resultó lo que pasa que me inserta los valores una sola vez, es decir yo capturo los distintos eventos del sistema ejemplo, cuando se crea una nueva ventana, cuando se destruye, cuando se activa y a partir de ahí obtengo toda la información referente a dicha ventana, clase, nombre de la ventana, proceso que la ejecutó, etc. Pero cuando trato de isertar esa información en la base de datos solo me lo inserta para el 1er evento, lugo la aplicación no hace más nada. Por favor si alguien sabe donde es el problema se lo agradeceria mucho.

Saludos Onel.

8
C/C++ / Re: Instalando Un Servicio En Un Pc Remoto
« en: Viernes 4 de Mayo de 2007, 19:20 »
Muchas gracias por su ayuda y el tiempo que me dedico,me sirvio mucho sus consejos para darme de cuenta de lo que me faltaba. Ya puede instalarlo en el PC remoto. todo parece indicar que hay que establecer una  preconexion con la maquina antes de llamar a la funcion OpenSCManager().

Una vez mas Gracias

Saludos.

9
C# / Re: Pasar Parametros A Una Dll En Vs C++
« en: Viernes 4 de Mayo de 2007, 19:08 »
No sabes cuanto le agradezco  la ayuda ya que es para  un trabajo de curso  y esto me tenia con dolores de cabez , ya todo me esta trabajando bien.


Muchisimias Gracias.

10
C/C++ / Re: Instalando Un Servicio En Un Pc Remoto
« en: Viernes 4 de Mayo de 2007, 18:51 »
Mira no entiendo bien el mensaje que me quieres hacer llegar pero lo que hago es lo siguiente.
void InstallService(char* servicename)
{  
  SC_HANDLE schSCManager = OpenSCManager( ipaddres, NULL,
                                               SC_MANAGER_CREATE_SERVICE);
   if (schSCManager == 0)
   {
                   long nError = GetLastError();
                   char pTemp[121];
                   sprintf(pTemp, "OpenSCManager failed, error code = %\n", nError);
                 }
   else
   {
                    SC_HANDLE schService = CreateService(....)
                 }
}

a create services le paso los parametros  que este lleva (ya lo he probado local y lo instala a la perfeccion)  y no trabaja como deberia.

11
C# / Re: Pasar Parametros A Una Dll En Vs C++
« en: Viernes 4 de Mayo de 2007, 18:45 »
Mira probe con (ref) a la hora de pasrle el parametro

[DllImport("SystemHookCore.dll", EntryPoint="InstallService",  SetLastError=true,
CharSet=CharSet.Unicode, ExactSpelling=true,
CallingConvention=CallingConvention.StdCall)]
private static extern void InstallService(ref char[] servicename);

luego en una funcion de mi .cs digo

public void InstallServices(ref char[] servicename)
{
  InstallService(ref servicename);
}

pero lo que me llega a la funcion

void InstallService(char* servicename)
{
.....
}
en la DLL son caracteres extraños nada que ver con la  cadena que le paso.

Saludos.

12
C/C++ / Re: Instalando Un Servicio En Un Pc Remoto
« en: Viernes 4 de Mayo de 2007, 18:10 »
Ya me docunte un poquito, y el problema es a la hora de OpenSCManager(...). Yo tengo un user y pass de la PC a la que se lo quiero instalar, pero la esta primera funcion no se le pasan estos valores  (se le pasan a la CreateServices(...)) pero cundo compruebo si esta esatblecida la cene.. con el service control manager simpre me da cero este valor.

No se si me he explicado correctamete

13
C# / Pasar Parametros A Una Dll En Vs C++
« en: Viernes 4 de Mayo de 2007, 18:03 »
Hola:

Estoy trabajando con una DLL en Vs C++ de la cual quiero utilizar una funcion que espera como parametro unc char*. El valor que le deseo pasar lo tomo de un componente de texto (despues de convertirlo aun char array). Pero en la Dll solo me toma el valor del primer caracter.

Alguin sabe como pasarle es parametro corrctamente para desde C# utilizar esa funcion.


Gracias.

Saludos Orosello.

14
C/C++ / Instalando Un Servicio En Un Pc Remoto
« en: Viernes 4 de Mayo de 2007, 17:47 »
Hola:
     Estoy tratando de instalar un servicio en Vs C++. En la maquina local lo instala perfectamente,  pero cundo trato de acceder a una maquina remota mediante la funcion

SC_HANDLE schSCManager = OpenSCManager( ipaddres, NULL,
                                                                SC_MANAGER_CREATE_SERVICE);

para luego instalar o crear el servico mediante

SC_HANDLE schService = CreateService(..........)

el schSCManager siempre toma valor cero es  decir que no se puede conectar, si alguien a desarrollado algo sobre esto le agredeceria que me diera una ayuda.

Saludos Orosello

15
C# / Re: Obtener Valor Al Que Apunta Un Puntero
« en: Viernes 4 de Mayo de 2007, 17:31 »
Hola:
      Yo tengo un problemilla algo parecido, solo que no quiero rescatar un valor de retorno, sino pasarle una prametro (desde C#) a la DLL (en c++).  El parametro que espera la funcion de la Dll es un char* que es pasado desde un campo de texto en C# . (servicename seria el parametro que espera la funcion de la DLL)

void InstallService(char* servicename)
{  
   char pServiceName[MAX_PATH];
   strcpy(pServiceName,servicename);
  .......
}

He probando con arraychar, string, ...... y solo me toma el primer caracter de la cadena que le paso.

Les agradeceria la ayuda  



Saludos Orosello

Páginas: [1]