Ver Mensaje Individual
  #10  
Antiguo 27-09-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola JXJ.

Usando Delphi 7 y C++ Builder 6, de este modo me funciona bién:
Código Delphi [-]
library Directorios;

uses Windows, SysUtils, Classes, SHFolder;

{$R *.res}

function GetSystemFolder(Folder: Integer): PChar;
var
  sDir: string;
begin
  SetLength(sDir, MAX_PATH);
  ZeroMemory(@sDir[1], MAX_PATH);
  SHGetFolderPath(0, Folder , 0, 0, PChar(sDir));
  Result := PChar(sDir);
end;

function Directorio(dir: string): PChar; stdcall;
begin
  Result :=  GetSystemFolder(CSIDL_PERSONAL);
end;

exports
  Directorio;

begin
end.

C++ Builder:
Código:
...
typedef const char* __cdecl(*pFunc) (char *);  pFunc Directorio;

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  HINSTANCE hDll = LoadLibrary("directorios.dll");

  if (hDll) {
    Directorio = (pFunc) GetProcAddress(hDll, "Directorio");
    Edit1->Text = Directorio("DirUserDocs");
  } 
  else
    ShowMessage("No se pudo cargar la DLL");
}
...
Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita