|
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
« 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
« 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
« 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
« 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 #import "C:\\Program Files\\Common Files\\System\\ado\\msado15.dll" no_namespace rename("EOF","adoEOF")
2- Esta tiene un método const LPCSTR STRING_CONNECTION = .............. BOOL Conectar(_ConnectionPtr& pCone) { _bstr_t bstrCone(STRING_CONNECTION); try { pCone.CreateInstance (__uuidof(Connection)); pCone->Open(bstrCone ,_bstr_t (""), _bstr_t (""), adModeUnknown ); return TRUE; } catch (_com_error& ce) { return FALSE; } catch(...) { MessageBox(NULL,"Ah ocurrido otro error","Error",MB_OK); return FALSE; } }
3- Luego yo incluyo esta clase en la stdafx.h que la uso en mi dll. Posteriormente en mi dll creo la siguiente funcion BOOL InsertPerson() { BOOL bRespuesta = TRUE; _ConnectionPtr pAdoCone; _RecordsetPtr Rs(__uuidof(Recordset)); if(Conectar(pAdoCone)) { Rs->PutRefActiveConnection(pAdoCone); _bstr_t bstrSql("Insert Into Client (id,name) Values (3,'name')"); Rs->Open(bstrSql, vtMissing, adOpenStatic, adLockReadOnly, adCmdUnknown); SetCursor(LoadCursor(NULL,IDC_WAIT)); return bRespuesta; } }
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
« 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... BOOL InsertPerson() { BOOL bRespuesta = TRUE; _ConnectionPtr pAdoCone; // Objeto para la conexión _RecordsetPtr Rs(__uuidof(Recordset)); // Un objeto recordset if(Conectar(pAdoCone)) { Rs->PutRefActiveConnection(pAdoCone); _bstr_t bstrSql("Insert Into Person (id,name) Values (3,'name')"); Rs->Open(bstrSql, vtMissing, adOpenStatic, adLockReadOnly, adCmdUnknown); SetCursor(LoadCursor(NULL,IDC_WAIT)); return bRespuesta; }
BOOL Conectar(_ConnectionPtr& pCone) { _bstr_t bstrCone(STRING_CONNECTION); try { pCone.CreateInstance (__uuidof(Connection)); pCone->Open(bstrCone ,_bstr_t (""), _bstr_t (""), adModeUnknown ); return TRUE; } catch (_com_error& ce) //¿Ocurrió una excepción? { return FALSE; } catch(...) { MessageBox(NULL,"Ah ocurrido otro error","Error",MB_OK); return FALSE; } }
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
« 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
« 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
« 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
« 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
« 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
« 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
« 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
« 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
« 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
« 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]
|
|
|