Quintas,
Funcionou conforme vc informou.
O meu teste ficou assim :
FUNCTION Main()
HB_MemoWrit( "novo.jpg" , Imagem() )
RETURN NIL
FUNCTION Imagem()
LOCAL xReturn := ""
#pragma __binarystreaminclude "imagem\01.jpg" | xReturn := %s
RETURN xReturn
A variável xReturn nem precisava, é porque eu gosto de verificar algum possÃvel erro depois da operação. Na rotina posso ver o tamanho dela, por exemplo.
Mas o que aconteceu, afinal ?
Eu que estava errando a diretiva.
Não é __PLATFORM_WINDOWS__
Mas sim __PLATFORM__WINDOWS
Como estava informada errada, o programa sempre pegava a definição para Linux, que não estava alterada para binary.
Na verdade, não precisa da diretiva. O Harbour converte automaticamente.
Fiz o teste com :
#pragma __binarystreaminclude "imagem/01.jpg" | cReturn := %s
Repare que só mudou a barra (que é no padrão *NIX) e também funcionou no Windows.
Agora, interessante é que no Linux não precisei usar __binarystreaminclude nem Hb_Memowrit. Vou alterar o código aqui para que funcione nos dois.
Obrigado!