Acho que primeiramente tem que dominar ou saber o básico de linguagem C.
Sobre linguagem C em Clipper, veja este tópico (bem antigo):
https://pctoledo.org/forum/viewto ... 865#p14865
O que eu sabia, que o compilador C para criar uma LIB (por exemplo) deve ser da Microsoft porque da Borland você não consegue linkar com Clipper.
Até onde sei sobre código em C no Harbour, tem que ser de padrão ANSI (puro C), não creio que possa ser inserido C++ que alguém me corrija se eu estiver enganado.
Para inserir um código em C adentro do seu código-fonte, bastaria você colocar no final do PRG (como usualmente é feito):
Exemplo de um código em C: com a finalidade de posicionar a janela no meio da tela, independente da resolução que se encontre o video:
Código: Selecionar todos
#define HB_OS_WIN_USED
#define _WIN32_WINNT 0x0400
#include <windows.h>
#include "hbapi.h"
#include "hbapiitm.h"
HB_FUNC ( C_CENTER )
{
RECT rect;
int w, h, x, y;
GetWindowRect((HWND) hb_parnl (1), &rect);
w = rect.right - rect.left;
h = rect.bottom - rect.top;
SystemParametersInfo( SPI_GETWORKAREA, 1, &rect, 0 );
x = rect.right - rect.left;
y = rect.bottom - rect.top;
SetWindowPos( (HWND) hb_parnl (1), HWND_TOP, (x - w) / 2, (y - h) / 2 + 1, 0, 0, SWP_NOSIZE | SWP_NOACTIVATE ) ;
}
Note que para uso com Harbour, a função em C sempre começa com
HB_FUNC e logo entre parêntese o nome da função (geralmente escrito em maiúscula).
Quanto ao código em C que você postou, não creio que possa ser executado. Também irá dar falta da função soma() e talvez a sua falta de parâmetros, creio eu.
como posso utilizar ela em Clipper/Harbour, sei la, como por exemplo, uma função int e/ou uma função void.... ??
Uma função que começa com
int na linguagem C significa que o retorno será um inteiro e o termo
void indica que a função não aceita parâmetros e também não retorna valor algum após finalizar aplicação. De em mais, cabe cada um estudar a linguagem C que é muito poderosa.
Mas agora me diga para quê você quer código em C com Harbour ou em Clipper, conte-nos qual é a sua intenção ou é apenas para seu aprendizado.