Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problema ventana CPU (https://www.clubdelphi.com/foros/showthread.php?t=43712)

Edgtho 18-05-2007 10:25:17

Problema ventana CPU
 
Buenas,

Ya hace tiempo desde mi ultima visita, jejeje. Lamento no poder estar mas al dia. Os comento un problemilla que tengo desde hace unos dias y que me esta matando, a ver si podeis ayudarme.

Accedo a una funcion ubicada en una DLL, concretamente

function SQLConfigDataSource; external 'odbccp32.dll' name 'SQLConfigDataSource';


El problema consiste en que en el momento en que ejecuto una llamada a esa funcion me salta la ventana de DEBUG de CPU, sin motivo ni error ninguno y ya no me deja hacer F8 ni F7, ni revisar ni nada. Directamente me toca lanzar la aplicacion con F9 y eliminar toda posibilidad de supervision.

Alguien me puede echar un cable para quitar esta molesta ventanita? No termino de entener porque salta ya que no le he activado ninguna opcion ni nada.

Ñuño Martínez 18-05-2007 12:25:51

No sé si tendrá algo que ver pero, ¿no deberías añadir un STDCALL?
Código Delphi [-]
function SQLConfigDataSource; stdcall; external 'odbccp32.dll' name 'SQLConfigDataSource';

Edgtho 18-05-2007 13:15:07

Gracias por la respuesta
Jejeje, en parte tienes razon, el problema es que no te he puesto la UNIT entera. Ahora, se que no es problema del STDCALL ya que el mismo codigo en otro ordenador no salta la CPU, es algo de mi Delphi que se ha vuelto revoltoso.


Os pongo la unit entera
Código:

{
 Unit que imprementa la dll odbccp32.dll en donde estan las funciones
 del api de windows para administrar alias odbc
}


unit AdminMyODBC;

interface

uses
    Windows;

// constantes utilizadas en la dll odbccp32.dll

Const
  ODBC_ADD_DSN=1;
  ODBC_CONFIG_DSN=2;
  ODBC_REMOVE_DSN=3;
  ODBC_ADD_SYS_DSN=4;
  ODBC_CONFIG_SYS_DSN=5;
  ODBC_REMOVE_SYS_DSN=6;
  ODBC_REMOVE_DEFAULT_DSN=7;

// funciones declaradas en la dll odbccp32.dll

function SQLConfigDataSource(HwndParent:HWND;FRequest:WORD;Driver:PChar;Attributes:Pchar):boolean;Stdcall;

// crear ODBC Mysql

function CreaMyODBC(const Nombre, Descripcion, servidor, bd, usuario, password: string): Boolean;

// borrar ODBC Mysql

function BorraMyODBC(const Nombre, Descripcion, servidor, bd, usuario, password: string): Boolean;

implementation

function SQLConfigDataSource; external 'odbccp32.dll' name 'SQLConfigDataSource';

function CreaMyODBC(const Nombre, Descripcion, servidor, bd, usuario, password: string): Boolean;
begin


  Result := SQLConfigDataSource(
                                0,
                                ODBC_ADD_DSN,
                                'MySQL ODBC 3.51 Driver',
                                PChar(
                                        'DSN=' + nombre + #0 +
                                        'Description=' + Descripcion + #0 +
                                        'Server=' + servidor + #0 +
                                        'Database=' + bd + #0 +
                                        'User=' + usuario + #0 +
                                        'Password=' + password + #0
                                      )
                                );

End;

function BorraMyODBC(const Nombre, Descripcion, servidor, bd, usuario, password: string): Boolean;
begin

  Result := SQLConfigDataSource(
                                0,
                                ODBC_REMOVE_DSN,
                                'MySQL ODBC 3.51 Driver',
                                PChar(
                                        'DSN=' + nombre + #0 +
                                        'Description=' + Descripcion + #0 +
                                        'Server=' + servidor + #0 +
                                        'Database=' + bd + #0 +
                                        'User=' + usuario + #0 +
                                        'Password=' + password + #0
                                      )
                                );

end;



La franja horaria es GMT +2. Ahora son las 10:24:07.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi