Hola,
No estoy muy puesto en estos temas (como en tantos otros) pero, haciendo alguna prueba, llegué hasta donde voy a motrar sin demasiados problemas: es probable que pueda hacerse de mejor forma, no lo pondré yo en duda, pero, en fin, esto que ahora verás parece funcionar a simple vista:
Lo primero es crear un archivo "dll". Nota que la variable en este caso no está en una unidad aparte, pero, se declara en el propio archivo principal del proyecto "dll", de otro modo, es decir, si declaráramos la variable en otra unidad creo que la cosa funcionaría de la misma forma.
Código Delphi
[-]
library Ejemplo;
{$R *.res}
var
FVariable: string;
function GetVariable : string;
begin
Result := FVariable;
end;
procedure SetVariable(valor: string);
begin
if (FVariable <> valor) then
FVariable := valor;
end;
exports GetVariable;
exports SetVariable;
begin
FVariable := 'ClubDelphi.com';
end.
Ese sería el código del proyecto "DLL". ¿Cómo acceder a la variable "FVariable" y cambiar su valor? Pues qué tal si declaramos las funciones que nos interesan de la "DLL" en la aplicación en donde tengamos necesidad de ellas, tal que de este modo:
Código Delphi
[-]
function GetVariable : string; external 'Ejemplo.dll' name 'GetVariable';
procedure SetVariable(valor: string); external 'Ejemplo.dll' name 'SetVariable';
Y, en realidad, eso es todo. Haciendo algunas pruebas, como he dicho, aunque pueda haber mejores formas, que no lo discuto, he podido acceder a la variable declarada e inicializada en la "DLL" y también cambiar su valor. Si te sirvió de algo tanto rollo me alegro.
