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: 20416
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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