Pergunta

Quando você usa DllImport para importar uma função você pode especificar um CharSet para uso. Notei que em C #, C ++ e Visual Basic padrões do tempo de execução .Net para usar ANSI em vez de Unicode para isso. Assim, para qualquer chamada de sistema que tem um A e uma versão W a versão A será chamado por padrão. usos .net unicode internamente e se eu sou novas versões não equivocadas de janelas também traduzir tudo para unicode Então isso significa um monte de sobrecarga triagem extra.

Eu comecei o hábito de sempre especificando unicode aqui é este o caminho certo para fazer as coisas ou vai causar problemas?

Foi útil?

Solução

Se você usar o ANSI variantes, você terá problemas se (por exemplo), há um arquivo com um nome que não pode ser representado na página de código ANSI sendo usado. A única desvantagem com o uso de Unicode é que seu código pode não funcionar tão bem nas versões mais antigas Win9x do Windows (95, 98 e ME).

Existem algumas funções que você terá que usar ANSI, porque em uso fato ASCII (GetProcAddress por exemplo).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top