Função capCreateCaptureWindow c++

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Função capCreateCaptureWindow c++

Mensagem 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) ) );
}
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Ana Mitoooo
Usuário Nível 3
Usuário Nível 3
Mensagens: 118
Registrado em: 17 Out 2018 10:00
Localização: Sobradinho/DF

Função capCreateCaptureWindow c++

Mensagem 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
);
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Função capCreateCaptureWindow c++

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
marcosgambeta
Usuário Nível 3
Usuário Nível 3
Mensagens: 332
Registrado em: 16 Jun 2005 22:53

Função capCreateCaptureWindow c++

Mensagem por marcosgambeta »

Experimente estas mudanças:

1) de "hb_parnl" para "hb_parnll"

2) de "hb_retnl" para "hb_retnll"
Atenciosamente,
Marcos Antonio Gambeta
Responder