Ver Mensaje Individual
  #1  
Antiguo 08-11-2018
Reasen Reasen is offline
Miembro
NULL
 
Registrado: dic 2015
Ubicación: Barcelona
Posts: 140
Reputación: 9
Reasen Va por buen camino
Problema con DLL

Hola, como os va por aquí !

Bueno hoy traigo este "problemon" resulta que tengo una DLL ya compilada en C++ la cual no puedo modificar el codigo fuente y necesito utilizar una de sus funciones
ya tengo encuenta que tengo que pasar una String por la "Char*" de C++ que en Delphi equivale a PChar

Bueno, buscando información he intentado varias maneras, alojando memoria con getmem, usando un array de char y demas chorradas pero una de 2, o no tengo ninguna respuesta o bytes basura, debería ser sencillo de arreglar pero buscando solo veo ejemplos para el lenguaje .NET, para ese tipo de llamada a la "Char*" bueno, le he dado 1000 vueltas, espero que alguien me pueda iluminar un poco

Hice un ejemplo sencillo de una DLL en C++ para emular el problema e ir buscando una solución.

Código Delphi [-]
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

function Test(Modulo: integer; funcName: PChar): Boolean; external 'dll1.dll' name 'Test';

var
  Buffer: PChar;

begin

  Buffer := 'Hola Soy Un Texto';
  Test(0, Buffer);

end.

En C++
Código PHP:
#include "stdafx.h"
#include <Windows.h>
BOOL WINAPI DllMain(HINSTANCE hinstDLLDWORD fdwReasonLPVOID lpvReserved)
{
    return 
TRUE;
}

extern "C" __declspec(dllexportDWORD64 Test(DWORD64 hModulecharfuncName)
{
    
MessageBoxA(0funcName""0);
    return 
TRUE;

https://prnt.sc/lfoe34

Última edición por Reasen fecha: 08-11-2018 a las 01:38:06.
Responder Con Cita