Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo Hace 1 Semana
Reasen Reasen is offline
Miembro
 
Registrado: Dec 2015
Ubicación: Barcelona
Posts: 140
Poder: 3
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: Hace 1 Semana a las 02:38:06.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 00:25:44.


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