Replies: 2 comments
-
'HWG_USE_POINTER_ITEM' controla se a HWGUI vai usar variáveis do tipo P (ponteiro) ou do tipo N (numérico) para armazenar os 'handles' dos objetos (janelas, controles, device context, pen, brush, etc...). O tipo P funciona melhor para armazenar endereços de memória, pois ele sempre vai ter o tamanho certo, tanto em 32-bit quanto em 64-bit. Não fica dependente da arquitetura e nem do compilador. O mesmo não ocorre quando o tipo é N. O tipo P requer alguns cuidados, pois não se está lidando com um número comum, mas sim com um endereço da memória. Para testar se o handle é válido: IF ! empty(obj:handle) Para testar se o handle é nulo: IF empty(obj:handle) O empty funciona para ambos os tipos: P e N. Evitar: IF obj:handle == 0 // não funciona para o tipo P - troque por empty IF obj:handle > 0 // também não funciona para o tipo P - troque por empty Ao fazer comparações de handles, tem de ser do mesmo tipo: ambos P ou ambos N. IF obj1:handle == obj2:handle // não funcionará se um for N e o outro P Você pode deixar a flag desativada e ir ajustando seu sistema para que funcione corretamente nas duas situações. Quando estiver tudo OK, poderá deixar a flag ativada por padrão. |
Beta Was this translation helpful? Give feedback.
-
Entendido mestre, vou começar a aplicar essas mudanças, tenho muito IF obj:handle = 0. Obrigado pela aula, foi super valido aqui para mim |
Beta Was this translation helpful? Give feedback.
-
Mestre,
Aqui tive que comentar a linha abaixo para poder ter o mesmo comportamento que minha versão anterior.
Sabe me explicar qual a diferença e se devo me adaptar a algo por aqui para usar com essa cFlag ?
-cflag=-DHWG_USE_POINTER_ITEM
Beta Was this translation helpful? Give feedback.
All reactions