![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
#3
|
|||
|
|||
|
Ya revisé el hilo anterior y de ahi me fui metiendo en los otros hilos y aunque he ganado en conocimiento me quedan algunas dudas.
Por ejemplo hice la siguiente dll: Código:
library ParadoxUtils;
uses SysUtils, BDE, DBTables, DB;
{$R *.res}
procedure PackTable(aAliasName, aTableName: PChar); export;
var
PxStruct: CRTblDesc;
db:TDataBase;
begin
with TTable.Create(nil) do
try
DatabaseName := aAliasName;
TableName := aTableName;
Exclusive := True;
Open;
Db := Session.FindDatabase(aAliasName);
Db.KeepConnection := True;
Close;
FillChar(PxStruct, SizeOf(PxStruct), 0);
StrPCopy(PxStruct.szTblName, aTableName);
PxStruct.bPack := True;
if DbiDoRestructure(Db.Handle, 1, @PxStruct, nil, nil, nil, False) <> DBIERR_NONE
then raise EDatabaseError.Create('Error en tabla' + aTableName);
Db.Connected := False;
finally
Free;
end;
end;
exports
PackTable;
begin
end.
Ahora en mi aplicación hice la siguiente declaración: Código:
interface ... procedure PackTable(AliasName, TableName: PChar); far; external 'ParadoxUtils.dll'; ... Código:
...
PackTable(PChar('GasTel'), PChar('REGISTRO.DB'));
...
Es decir cuando mi aplicación se está ejecutando y llego al punto de llamar a PackTable ella carga en memoria la dll, o cuando compilé mi aplicación se le incorporó el código desde la dll? Es responsabilidad del programador o eso lo hace el SO? Disculpe si soy extenso pero lei Cita:
|
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|