¿Fast Report en FW64?

User avatar
JoseAlvarez
Posts: 851
Joined: Sun Nov 09, 2014 5:01 pm
Been thanked: 7 times

¿Fast Report en FW64?

Post by JoseAlvarez »

Saludos a todos.

En vista de una futura migración a FW64Bits, ¿Funciona Fast Report en 64 bits?
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
karinha
Posts: 8716
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Has thanked: 33 times
Been thanked: 51 times
Contact:

Re: ¿Fast Report en FW64?

Post by karinha »

Buén dia estimado. Pregunte aqui:

https://www.ozs.es/wp/fastreport/

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
carlos vargas
Posts: 1813
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua
Been thanked: 15 times

Re: ¿Fast Report en FW64?

Post by carlos vargas »

No.
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
CARLOS ATUNCAR
Posts: 246
Joined: Thu Sep 17, 2015 11:40 pm
Location: Chincha - Peru
Has thanked: 20 times
Been thanked: 15 times
Contact:

Re: ¿Fast Report en FW64?

Post by CARLOS ATUNCAR »

no hay que crear un 32bits y pasar los datos para generar el reporte
Carlos Atuncar - CaSoftSystem
Chincha - Perú
+51983478218
carlosalbatun@gmail.com
paquitohm
Posts: 318
Joined: Fri Jan 14, 2022 8:37 am
Has thanked: 1 time
Been thanked: 5 times

Re: ¿Fast Report en FW64?

Post by paquitohm »

JoseAlvarez wrote:Saludos a todos.

En vista de una futura migración a FW64Bits, ¿Funciona Fast Report en 64 bits?

https://forums.fivetechsupport.com/view ... 45#p270980
Horizon
Posts: 1388
Joined: Fri May 23, 2008 1:33 pm
Has thanked: 20 times
Been thanked: 8 times

Re: ¿Fast Report en FW64?

Post by Horizon »

JoseAlvarez wrote:Saludos a todos.

En vista de una futura migración a FW64Bits, ¿Funciona Fast Report en 64 bits?
I have the same problem. I have found this article.
https://blog.mattmags.com/2007/06/30/ac ... -bit-code/
Regards,

Hakan ONEMLI

Harbour & MSVC 2022 & FWH 23.06
User avatar
Antonio Linares
Site Admin
Posts: 44508
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 717 times
Been thanked: 311 times
Contact:

Re: ¿Fast Report en FW64?

Post by Antonio Linares »

Dear Hakan,

Your pointed article is very interesting but it does not provide any source code examples.

Using Claude https://claude.ai/new we can get code examples:
can you write an example of using IPC to use a 32 bits DLL from a 64 bits EXE on Windows ? Use C language
Certainly, I can provide an example of using Inter-Process Communication (IPC) to use a 32-bit DLL from a 64-bit EXE on Windows using C. This is a common scenario when dealing with legacy 32-bit DLLs that need to be used in modern 64-bit applications. We'll use named pipes for IPC in this example.
This example demonstrates how to use IPC with named pipes to communicate between a 64-bit EXE and a 32-bit EXE, which in turn loads and uses a 32-bit DLL. Here's a breakdown of the components:
64-bit EXE (main.c):
Creates a named pipe
Launches the 32-bit helper process
Reads the result from the pipe
32-bit EXE (helper32.c):
Loads the 32-bit DLL
Calls the function from the DLL
Sends the result back through the pipe
32-bit DLL (mylib32.c):
Contains a simple function that doubles its input
To use this example:
1. Compile the 32-bit DLL (mylib32.c) as a 32-bit DLL.
2. Compile the helper32.c as a 32-bit executable.
3. Compile the main.c as a 64-bit executable.
Make sure all three files are in the same directory when running the 64-bit EXE.
This approach allows you to indirectly use a 32-bit DLL from a 64-bit process by using a 32-bit helper process as an intermediary. The named pipe provides a simple way to pass data between the two processes.

Code: Select all | Expand

// 64-bit EXE (main.c)
#include <windows.h>
#include <stdio.h>

#define PIPE_NAME "\\\\.\\pipe\\MyPipe"
#define BUFFER_SIZE 1024

int main() {
    HANDLE hPipe;
    char buffer[BUFFER_SIZE];
    DWORD bytesRead;
    
    // Create the named pipe
    hPipe = CreateNamedPipe(
        PIPE_NAME,
        PIPE_ACCESS_DUPLEX,
        PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE | PIPE_WAIT,
        1,
        BUFFER_SIZE,
        BUFFER_SIZE,
        0,
        NULL);
    
    if (hPipe == INVALID_HANDLE_VALUE) {
        printf("CreateNamedPipe failed, error %d\n", GetLastError());
        return 1;
    }
    
    // Start the 32-bit process
    STARTUPINFO si = { sizeof(STARTUPINFO) };
    PROCESS_INFORMATION pi;
    if (!CreateProcess("Helper32.exe", NULL, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) {
        printf("CreateProcess failed, error %d\n", GetLastError());
        CloseHandle(hPipe);
        return 1;
    }
    
    // Connect to the client
    if (!ConnectNamedPipe(hPipe, NULL)) {
        printf("ConnectNamedPipe failed, error %d\n", GetLastError());
        CloseHandle(hPipe);
        return 1;
    }
    
    // Read the result from the 32-bit process
    if (ReadFile(hPipe, buffer, BUFFER_SIZE, &bytesRead, NULL)) {
        buffer[bytesRead] = '\0';
        printf("Received from 32-bit process: %s\n", buffer);
    } else {
        printf("ReadFile failed, error %d\n", GetLastError());
    }
    
    // Clean up
    CloseHandle(hPipe);
    CloseHandle(pi.hProcess);
    CloseHandle(pi.hThread);
    
    return 0;
}

// 32-bit EXE (helper32.c)
#include <windows.h>
#include <stdio.h>

#define PIPE_NAME "\\\\.\\pipe\\MyPipe"
#define BUFFER_SIZE 1024

// Function prototype for the DLL function
typedef int (*MYLIBFUNC)(int);

int main() {
    HANDLE hPipe;
    HMODULE hDll;
    MYLIBFUNC MyLibFunc;
    char buffer[BUFFER_SIZE];
    DWORD bytesWritten;
    
    // Load the 32-bit DLL
    hDll = LoadLibrary("MyLib32.dll");
    if (hDll == NULL) {
        printf("LoadLibrary failed, error %d\n", GetLastError());
        return 1;
    }
    
    // Get the function address
    MyLibFunc = (MYLIBFUNC)GetProcAddress(hDll, "MyLibFunc");
    if (MyLibFunc == NULL) {
        printf("GetProcAddress failed, error %d\n", GetLastError());
        FreeLibrary(hDll);
        return 1;
    }
    
    // Call the function
    int result = MyLibFunc(42);
    
    // Connect to the named pipe
    hPipe = CreateFile(
        PIPE_NAME,
        GENERIC_WRITE,
        0,
        NULL,
        OPEN_EXISTING,
        0,
        NULL);
    
    if (hPipe == INVALID_HANDLE_VALUE) {
        printf("CreateFile failed, error %d\n", GetLastError());
        FreeLibrary(hDll);
        return 1;
    }
    
    // Send the result back to the 64-bit process
    sprintf(buffer, "Result from 32-bit DLL: %d", result);
    if (!WriteFile(hPipe, buffer, strlen(buffer), &bytesWritten, NULL)) {
        printf("WriteFile failed, error %d\n", GetLastError());
    }
    
    // Clean up
    CloseHandle(hPipe);
    FreeLibrary(hDll);
    
    return 0;
}

// 32-bit DLL (mylib32.c)
#include <windows.h>

__declspec(dllexport) int MyLibFunc(int x) {
    return x * 2;
}
Lately we are using Claude more and more than chatgpt and others. Claude is improving so much and it is outstanding in coding, knowing Harbour, xHarbour and FWH
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
carlos vargas
Posts: 1813
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua
Been thanked: 15 times

Re: ¿Fast Report en FW64?

Post by carlos vargas »

Interesante, la respuesta y claude...
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
Carles
Posts: 1297
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona
Has thanked: 3 times
Been thanked: 54 times
Contact:

Re: ¿Fast Report en FW64?

Post by Carles »

Hola,

Te creas un servicio con 32 bits y te conectas desde tu App 64 bits via NETIO

C.
Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
HIX -> https://github.com/carles9000/hix
User avatar
cnavarro
Posts: 6763
Joined: Wed Feb 15, 2012 8:25 pm
Location: España
Has thanked: 30 times
Been thanked: 24 times

Re: ¿Fast Report en FW64?

Post by cnavarro »

Ultimas noticias sobre FastReport NET 32/64 bits
https://discord.com/channels/1113461397 ... 4791478515

Invitacion al canal:
https://discord.gg/WnmDuBRk

Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
Posts: 6763
Joined: Wed Feb 15, 2012 8:25 pm
Location: España
Has thanked: 30 times
Been thanked: 24 times

Re: ¿Fast Report en FW64?

Post by cnavarro »

Bueno, esto esta listo para sentencia. Despues de multiples pruebas puedo decir que el enlace entre FastReport.Net y Harbour es un hecho
Y, tan sencillo como
oFR:AddMemoEx( , "TxtIva", 10, 120, 300, 20, '[GET_IVA("21")]' )
Evidentemente el tipo de elemento ( MemoEx en este caso ) que pongas es cosa del diseñador
Y en la exportacion a html permite que los elementos ejecuten acciones al hacer click en ellos


Well, this is ready for final approval. After multiple tests, I can confirm that the link between FastReport.Net and Harbour is working.
And it's as simple as:

oFR:AddMemoEx( , "TxtIva", 10, 120, 300, 20, '[GET_IVA("21")]' )
Obviously, the type of element (MemoEx in this case) you use is up to the designer.
And when exporting to HTML, allow elements to execute actions when clicked.


https://discord.com/channels/1113461397 ... 1930403860

Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
Posts: 6763
Joined: Wed Feb 15, 2012 8:25 pm
Location: España
Has thanked: 30 times
Been thanked: 24 times

Re: ¿Fast Report en FW64?

Post by cnavarro »

Invitacion al canal de discord
https://discord.gg/3mQhZkjd

El miercoles dia 11 a las 20:00 h PM hora de España, se presentara el xdreportfast en una sesion que se publicara en dicho canal de discord
No se usara Teams, por lo que seguramente usemos jitsi ( se pondra el enlace en el servidor de discord )


Discord Channel Invitation
https://discord.gg/3mQhZkjd

On Wednesday the 11th at 8:00 PM Spanish time, xdreportfast will be presented in a session that will be broadcast on the Discord channel.
We will not be using Teams, so we will most likely use Jitsi (the link will be posted on the Discord server).

Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Ariel
Posts: 389
Joined: Wed Nov 29, 2006 1:51 pm
Location: Rosario - Argentina
Been thanked: 2 times

Re: ¿Fast Report en FW64?

Post by Ariel »

+1

Ariel
Posts: 389
Joined: Wed Nov 29, 2006 1:51 pm
Location: Rosario - Argentina
Been thanked: 2 times

Re: ¿Fast Report en FW64?

Post by Ariel »

Buenas, el link de la reunion de Fastreport .Net desde harbour :
https://meet.jit.si/IndividualEndeavoursRestForever
los esperamos.

User avatar
cnavarro
Posts: 6763
Joined: Wed Feb 15, 2012 8:25 pm
Location: España
Has thanked: 30 times
Been thanked: 24 times

Re: ¿Fast Report en FW64?

Post by cnavarro »

VERSION 10.0 FINAL
Incluye motor interno en FastReport de uso de DBFS

Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Post Reply