Página 1 de 1

Função capCreateCaptureWindow c++

Enviado: 12 Mai 2020 19:50
por asimoes
Pessoal,

Consegui gerar um build do harbour 3.4 com gcc 9.3 e llvm/clang 10.0

Tenho uma rotina captura de imagem usando webcam para 32 bits compila sem problemas, com harbour 64 bits, ta me apresentando o erro:

2020-05-12 19_45_50-C__WINDOWS_system32_cmd.exe.png
capCreateCaptureWindow

Código: Selecionar todos

HB_FUNC( CAPCREATECAPTUREWINDOW )
{
 hb_retnl( (LONG) capCreateCaptureWindow( (LPCSTR) hb_parc(1),
                                          (DWORD) hb_parnl(2),
                                          hb_parni(3), hb_parni(4),
                                          hb_parni(5), hb_parni(6),
                                          (HWND) hb_parnl(7),
                                          hb_parnl(8) ) );
}

Função capCreateCaptureWindow c++

Enviado: 12 Mai 2020 20:04
por Ana Mitoooo
Último parâmetro deve ser tipo Integer: hb_parni(8)

Código: Selecionar todos

HB_FUNC( CAPCREATECAPTUREWINDOW )
{
 hb_retnl( (LONG) capCreateCaptureWindow( (LPCSTR) hb_parc(1),
                                          (DWORD) hb_parnl(2),
                                          hb_parni(3), hb_parni(4),
                                          hb_parni(5), hb_parni(6),
                                          (HWND) hb_parnl(7),
                                          hb_parni(8) ) );
}
*Deveria apresentar o mesmo erro em 32bits tbm

Código: Selecionar todos

C++

HWND VFWAPI capCreateCaptureWindowA(
  LPCSTR lpszWindowName,
  DWORD  dwStyle,
  int    x,
  int    y,
  int    nWidth,
  int    nHeight,
  HWND   hwndParent,
  int    nID
);

Função capCreateCaptureWindow c++

Enviado: 12 Mai 2020 20:26
por JoséQuintas
Pelo que me parece, a mensagem diz que vai perder a precisão numérica ao fazer conversão.
Verifique se em algum fonte tem alguma macro para o C. (Macro/#define, acho que vi chamarem algumas coisas de macro em algum lugar)

Dá uma olhada na hbwin do 3.4, deve ter pista sobre isso, já que lá deve tratar 32/64 bits.

Função capCreateCaptureWindow c++

Enviado: 12 Mai 2020 21:01
por marcosgambeta
Experimente estas mudanças:

1) de "hb_parnl" para "hb_parnll"

2) de "hb_retnl" para "hb_retnll"