Physfs Binary Options


A versão mais recente do PhysicsFS pode ser encontrada em: icculus. org/physfs/ PhysicsFS uma abstração de arquivo portátil e flexível. Esta API dá-lhe acesso a um sistema de ficheiros do sistema de forma superior ao stdio ou sistema i / o chamadas. Os benefícios breves: Seu portátil. É seguro. Nenhum acesso de arquivo é permitido fora dos diretórios especificados. É flexível. Arquivos (arquivos. ZIP) podem ser usados ​​de forma transparente como estruturas de diretório. Este sistema é em grande parte inspirado por Quake 3s PK3 arquivos e os cvars fs relacionados. Se youve sempre tinkered com estes, então esta API será familiar para você. Com PhysicsFS, você tem um único diretório de escrita e vários diretórios (o caminho de busca) para leitura. Você pode pensar nisso como um sistema de arquivos dentro de um sistema de arquivos. Se (no Windows) você definisse o diretório de escrita para C: MyGameMyWritingDirectory, nenhuma chamada PHYSFS poderia tocar em nada acima desse diretório, incluindo os diretórios C: MyGame e C :. Isso evita que uma linguagem interna de scripts de aplicativos perverta sobre c: config. sys, por exemplo. Se você preferir dar PHYSFS acesso total ao sistema de arquivos de sistemas REAL, defina o diretório de escrita para C :, mas isso é geralmente uma coisa ruim por várias razões. Letras de unidade estão ocultas no PhysicsFS depois de configurar os caminhos iniciais. O caminho de pesquisa cria uma estrutura hierárquica de diretórios única. Não só isso se presta bem à abstração geral com arquivos, mas também dá um melhor suporte a sistemas operacionais como MacOS e Unix. De um modo geral, você nunca deve hardcode uma letra de unidade não só isso prejudica a portabilidade para sistemas operacionais não-Microsoft, mas também limita seus usuários win32 para uma única unidade, também. Use as funções de abstração do PhysicsFS e também as opções de configuração definidas pelo usuário. Ao abrir um arquivo, você o especifica como se estivesse em um sistema de arquivos Unix: se você quiser escrever em C: MyGameMyConfigFilesgame. cfg, então você pode definir o dir de gravação para C: MyGame e então abrir MyConfigFiles / game. cfg. Isso dá uma abstração em todas as plataformas. Especificar um arquivo dessa maneira é denominado notação independente da plataforma nesta documentação. Especificando um nome de arquivo em um formulário como C: mydirmyfile ou disco rígido MacOS: Meu diretório: Meu arquivo é denominado notação dependente da plataforma. A única vez que você usa a notação dependente da plataforma é ao configurar seu diretório de gravação e o caminho de pesquisa depois disso, todo o acesso a arquivos nesses diretórios é feito com notação independente de plataforma. Todos os arquivos abertos para escrita são abertos em relação ao diretório de gravação, que é a raiz do sistema de arquivos gravável. Ao abrir um arquivo para leitura, PhysicsFS passa pelo caminho de busca. Esta NÃO é a mesma coisa que a variável de ambiente PATH. Um aplicativo usando PhysicsFS especifica os diretórios a serem pesquisados, que podem ser diretórios reais ou arquivos de arquivamento que contêm arquivos e subdiretórios próprios. Consulte o final destes documentos para os formatos de arquivo suportados atualmente. Uma vez que o caminho de pesquisa é definido, você pode abrir arquivos para leitura. Se você tiver o seguinte caminho de busca definido (para usar um exemplo win32 novamente): C: mygame C: mygamemyuserfiles D: mygamescdromdatafiles C: mygameinstalleddatafiles. zip Em seguida, uma chamada para PHYSFSopenRead (textfiles / myfile. txt) (observe o separador de diretório, falta De letra de unidade e falta de separador de dir no início da seqüência de caracteres isso é independente de plataforma independente) irá verificar para C: mygametextfilesmyfile. txt, então C: mygamemyuserfilestextfilesmyfile. txt, então D: mygamescdromdatafilestextfilesmyfile. txt, então, finalmente, para Textfilesmyfile. txt dentro de C: mygameinstalleddatafiles. zip. Lembre-se de que a maioria dos tipos de arquivos e sistemas de arquivos de plataforma armazenam seus nomes de arquivo de forma sensível a maiúsculas e minúsculas, portanto, você deve ter cuidado ao especificá-los corretamente. Arquivos abertos pelo PhysicsFS não podem conter. Ou .. ou: como elementos dir. Não são apenas estes sem sentido no MacOS Classic e / ou Unix, eles são um buraco de segurança. Além disso, os links simbólicos (que podem ser encontrados em alguns tipos de arquivo e diretamente no sistema de arquivos em plataformas Unix) NÃO são seguidos até que você chame PHYSFSpermitSymbolicLinks (). Isso é deixado a seu próprio critério, como seguir um link simbólico pode permitir o acesso fora do diretório de gravação e os caminhos de pesquisa. Para a portabilidade, não há mecanismo para criar novos links simbólicos no PhysicsFS. O dir de escrita não está incluído no caminho de pesquisa, a menos que você especificamente adicioná-lo. Enquanto você PODE alterar o dir de gravação quantas vezes quiser, você provavelmente deve defini-lo uma vez e cumpri-lo. Lembre-se de que seu programa não terá permissão para gravar em todos os diretórios em sistemas Unix e NT. Todos os arquivos são abertos em modo binário não há nenhuma conversão final para textfiles. Além disso, PhysicsFS tem algumas funções de conveniência para independência de plataforma. Existe uma função para lhe dizer o separador de diretório de plataformas atual (no windows, / no Unix,: no MacOS), que é necessário apenas para configurar seus caminhos de pesquisa / gravação. Há uma função para dizer-lhe quais unidades de CD-ROM contêm discos acessíveis e uma função para recomendar um bom caminho de pesquisa, etc. Uma ordem recomendada para o caminho de pesquisa é o dir de gravação, depois o dir de base e, em seguida, o diretório de cdrom, Então qualquer arquivo descoberto. Quake 3 faz algo parecido com isto, mas move os arquivos para o início do caminho de busca. Construa jogos de Motor, como Duke Nukem 3D e Blood, coloque os arquivos por último, e use o dir base para pesquisa e escrita. Existe uma função auxiliar (PHYSFSsetSaneConfig ()) que reúne uma configuração básica para você, com base em alguns parâmetros. Veja também os comentários sobre PHYSFSgetBaseDir (). E PHYSFSgetPrefDir () para obter informações sobre quais são e como eles podem ajudá-lo a determinar um caminho de pesquisa ideal. O PhysicsFS 2.0 acrescenta o conceito de montar arquivos em pontos arbitrários no caminho de busca. Se um zipfile contiver mapas / level. map e você montar esse arquivo em mods / mymod, então você teria que abrir mods / mymod / maps / level. map para acessar o arquivo, mesmo que mods / mymod isnt realmente especificado no arquivo. arquivo ZIP. Ao contrário da mentalidade Unix de montar um sistema de arquivos, mods / mymod doesnt realmente tem que existir ao montar o zipfile. É um diretório virtual. O mecanismo de montagem permite que o desenvolvedor separe arquivos na árvore e evite pisotear arquivos quando adicionar novos arquivos, como incluir suporte a mod em um jogo. Manter o conteúdo externo em uma trela apertado desta maneira pode ser de extrema importância para algumas aplicações. PhysicsFS é principalmente thread-safe. As mensagens de erro devolvidas pelo PHYSFSgetLastError () são exclusivas por thread e as funções de definição de estado da biblioteca são mutexd. Para eficiência, os acessos de arquivos individuais não são bloqueados, assim você não pode com segurança ler / escrever / buscar / fechar / etc o mesmo arquivo de dois segmentos ao mesmo tempo. Outras condições de corrida são bugs que devem ser relatados / corrigidos. Enquanto você PODE usar o acesso ao arquivo stdio / syscall em um programa que tenha chamadas PHYSFS, isso não é recomendado e você não pode usar o filehandles do sistema com PhysicsFS e vice-versa. Note que os arquivos não precisam ser nomeados como tal: se você tiver um arquivo ZIP e renomeá-lo com uma extensão. PKG, o arquivo ainda será reconhecido como um arquivo ZIP pelo PhysicsFS os arquivos de conteúdo são usados ​​para determinar seu tipo sempre que possível. Tipos de arquivos atualmente suportados:.ZIP (arquivos compatíveis com pkZip / WinZip / Info-ZIP) .7Z (arquivos 7zip).ISO (arquivos ISO9660, imagens CD-ROM).GRP ) Arquivos de arquivo. MVL (Descent II movielib).WAD (Arquivos de mecanismo DOOM) Política de seqüência de caracteres para PhysicsFS 2.0 e posterior: PhysicsFS 1.0 só poderia lidar com seqüências de caracteres ASCII com terminação nula. Todos os caracteres ASCII altos resultaram em comportamento indefinido e não havia nenhum suporte Unicode. PhysicsFS 2.0 suporta Unicode sem quebrar compatibilidade binária com a API 1.0 usando codificação UTF-8 de todas as seqüências passadas dentro e fora da biblioteca. Todas as strings passadas pelo PhysicsFS estão em formato UTF-8 terminado por nulo. Isso significa que, se tudo o que você se importa é Inglês (caracteres ASCII lt 127), então você só usa regulares C strings. Se você se preocupa com Unicode (e você deve), então você precisa descobrir o que sua plataforma quer, necessidades e ofertas. Se você estiver no Windows antes de Win2000 e construir com suporte Unicode, suas seqüências TCHAR são dois bytes por caractere (isso é chamado codificação UCS-2). Qualquer Windows moderno usa UTF-16, que é dois bytes por caractere para a maioria dos caracteres, mas alguns caracteres são quatro. Você deve convertê-los para UTF-8 antes de entregá-los para PhysicsFS com PHYSFSutf8FromUtf16 (). Que lida com UTF-16 e UCS-2. Se você estiver usando Unix ou Mac OS X, suas seqüências wchart são quatro bytes por caractere (codificação UCS-4). Use PHYSFSutf8FromUcs4 (). Mac OS X pode dar UTF-8 diretamente de um CFString ou NSString, e muitos Unixes geralmente dar-lhe strings C no formato UTF-8 em todos os lugares. Se você tiver um single-byte ASCII charset, como tantos europeos codepages você pode estar fora de sorte. Bem converter de Latin1 para UTF-8 apenas, e nunca voltar para Latin1. Se você estiver acima de ASCII 127, todas as apostas estão desativadas: mova para Unicode ou use as facilidades de sua plataforma. Passando uma corda C com dados ASCII alto que não é codificado UTF-8 NÃO fará o que você espera Naturalmente, também há PHYSFSutf8ToUcs2 (). PHYSFSutf8ToUtf16 (). E PHYSFSutf8ToUcs4 () para obter dados de volta para um formato que você gosta. Nos bastidores, o PhysicsFS usará Unicode sempre que possível: as cadeias UTF-8 no Windows serão convertidas e usadas com as APIs de Windows de vários bytes, por exemplo. PhysicsFS oferece suporte à conversão básica de codificação, mas não uma biblioteca de seqüência inteira. Obtenha suas coisas em qualquer formato que você pode trabalhar com. Todas as plataformas suportadas pelo PhysicsFS 2.1 e posterior suportam totalmente Unicode. Temos lançado plataformas que não (OS / 2, Mac OS 9, Windows 95, etc), como mesmo um OS thats mais de uma década deve ser esperado para lidar com isso bem. Se você absolutamente deve suportar uma dessas plataformas, você deve usar uma versão mais antiga do PhysicsFS. Muitos arquivadores específicos do jogo estão seriamente despreparados para Unicode (os descodificadores Descent HOG / MVL e Build Engine GRP, por exemplo, oferecem apenas um nome de arquivo DOS 8.3, por exemplo). Nada pode ser feito para estes, mas eles tendem a ser formatos herdados para o conteúdo existente que era tudo ASCII (e, portanto, válido UTF-8) de qualquer maneira. Outros formatos, como. ZIP, não oferecem explicitamente suporte Unicode, mas não oficialmente esperam que os nomes de arquivos sejam codificados em UTF-8 e, portanto, Just Work. A maioria de tudo faz a coisa direita sem incomodá-lo, mas é bom estar ciente destas nuances caso que não. Consulte o arquivo LICENSE. txt no diretório raiz de origens para obter direitos de licenciamento e redistribuição. Consulte o arquivo CREDITS. txt no diretório docs de fontes para obter uma lista mais ou menos completa de quem é responsável por isso. Autor: Ryan C. Gordon. Gerado em Sat Mar 24 15:06:35 2012 para physfs por 1.6.3Whats nos pacotes binários Os pacotes binários contêm a biblioteca completa Allegro com todos os seus addons e dependências de terceiros. Cada pacote foi projetado para trabalhar com uma versão de compilador específica. Você deve baixar a versão para o seu compilador. Os compiladores suportados são: Se o compilador que você usa não está na lista, então você terá que construir Allegro você mesmo. O pacote binário contém três pastas. A pasta include contém todos os arquivos de cabeçalho. Observe que os arquivos de cabeçalho são específicos para o compilador e sua versão e, portanto, não são compatíveis com outros compiladores. A pasta lib contém as bibliotecas que você precisará vincular. Esses também só funcionam para o compilador específico para o qual são designados. A pasta bin contém as várias DLLs que o programa será dependente (se você não link estático). Entendendo os Allegro 5 Addons Allegro 5 é modular e, como tal, você deve vincular a uma variedade de bibliotecas diferentes, dependendo da funcionalidade que você usa. As bibliotecas atuais são: allegro - as funções do núcleo allegromain - uma compatibilidade libarary que permite int main () para trabalhar em todos os compiladores. Não confunda isso com a biblioteca base allegro. Ele não inclui nenhuma funcionalidade. Só é necessário no OS X. allegroacodec - codecs de áudio (eg OGG) allegroaudio - o subsistema de áudio básico allegrocolor - conversão entre vários formatos de cor allegrodialog - caixas de diálogo nativas (por exemplo, Open File) allegrofont - fontes básicas de bitmap allegroimage - formatos de imagem , PNG) allegromemfile - uma interface para carregar arquivos de memória allegrophysfs - uma interface para carregar arquivos de locais abstratos (por exemplo, um arquivo ZIP) allegroprimitives - funções básicas de desenho (eg rectângulos, linhas) allegrottf - carregamento de fontes TTF Algumas das bibliotecas dependem entre si. Consulte o Guia de Introdução para obter mais detalhes. Convenções de Nomenclatura de Biblioteca Os pacotes binários contêm cada um desses addons em uma variedade de formatos. Isso leva a um sistema de nomenclatura muito detalhado que se parece com: As bibliotecas de addon que você usa devem corresponder ao tipo de compilação da biblioteca Allegro de base que você liga. As bibliotecas de terceiros (por exemplo, libogg) são todas versões estáticas, mas você ainda deve usar a mesma compilação mt / md. Dynamic, Static ou Monolith Se a biblioteca não incluir - static ou - monolith, então é a versão dinâmica. Isso significa que o executável será dependente do arquivo DLL correspondente na pasta bin. Como tal, você deve incluir essas DLLs ao distribuir seu projeto. A versão estática significa que a DLL não é necessária. Nem todo compilador suporta esta opção. Ao usar a versão estática do Allegro você deve definir ALLEGROSTATICLINK antes de incluir qualquer cabeçalho Allegro. A versão monolítica é uma compilação de Allegro de tamanho único. Quando você liga contra allegro-monolith, você não precisa vincular a qualquer outra biblioteca Allegro. (E assim não há tal coisa como allegromodule-monolith.) O monolith construir também pode ser estático se assim for, as mesmas coisas mencionadas acima sobre a construção estática se aplicam a ele. Essas opções afetam como o compilador links para a biblioteca C padrão. A versão MT inclui-lo como parte do executável. A versão MD deixa de fora, e requer que você também inclua as DLLs do sistema apropriado quando você distribuir seu programa. Release vs Debug As compilações marcadas como depuração são destinadas a depuração. É recomendável que você use depuração quando você está testando e desenvolvendo seu projeto. Quando você distribuir seu programa, você deve usar as compilações padrão sem depuração. Configurando o seu IDETa última versão do PhysicsFS pode ser encontrada em: icculus. org/physfs/ PhysicsFS um portátil, flexível arquivo i / o abstração. Esta API dá-lhe acesso a um sistema de ficheiros do sistema de forma superior ao stdio ou sistema i / o chamadas. Os benefícios breves: Seu portátil. É seguro. Nenhum acesso de arquivo é permitido fora dos diretórios especificados. É flexível. Arquivos (arquivos. ZIP) podem ser usados ​​de forma transparente como estruturas de diretório. Este sistema é em grande parte inspirado por Quake 3s PK3 arquivos e os cvars fs relacionados. Se youve sempre tinkered com estes, então esta API será familiar para você. Com PhysicsFS, você tem um único diretório de escrita e vários diretórios (o caminho de busca) para leitura. Você pode pensar nisso como um sistema de arquivos dentro de um sistema de arquivos. Se (no Windows) você definisse o diretório de escrita para C: MyGameMyWritingDirectory, nenhuma chamada PHYSFS poderia tocar em nada acima deste diretório, incluindo os diretórios C: MyGame e C :. Isso evita que uma linguagem interna de scripts de aplicativos perverta sobre c: config. sys, por exemplo. Se você preferir dar PHYSFS acesso total ao sistema de arquivos de sistemas REAL, defina o diretório de escrita para C :, mas isso é geralmente uma coisa ruim por várias razões. Letras de unidade estão ocultas no PhysicsFS depois de configurar os caminhos iniciais. O caminho de pesquisa cria uma estrutura hierárquica de diretórios única. Não só isso se presta bem à abstração geral com arquivos, mas também dá um melhor suporte a sistemas operacionais como MacOS e Unix. De um modo geral, você nunca deve hardcode uma letra de unidade não só isso prejudica a portabilidade para sistemas operacionais não-Microsoft, mas também limita seus usuários win32 para uma única unidade, também. Use as funções de abstração do PhysicsFS e também as opções de configuração definidas pelo usuário. Ao abrir um arquivo, você o especifica como se estivesse em um sistema de arquivos Unix: se você quiser escrever em C: MyGameMyConfigFilesgame. cfg, então você pode definir o dir de gravação para C: MyGame e então abrir MyConfigFiles / game. cfg. Isso dá uma abstração em todas as plataformas. Especificar um arquivo dessa maneira é denominado notação independente da plataforma nesta documentação. Especificando um nome de arquivo em um formulário como C: mydirmyfile ou disco rígido MacOS: Meu diretório: Meu arquivo é denominado notação dependente da plataforma. A única vez que você usa a notação dependente da plataforma é ao configurar seu diretório de gravação e o caminho de pesquisa depois disso, todo o acesso a arquivos nesses diretórios é feito com notação independente de plataforma. Todos os arquivos abertos para escrita são abertos em relação ao diretório de gravação, que é a raiz do sistema de arquivos gravável. Ao abrir um arquivo para leitura, PhysicsFS passa pelo caminho de busca. Esta NÃO é a mesma coisa que a variável de ambiente PATH. Um aplicativo usando PhysicsFS especifica os diretórios a serem pesquisados, que podem ser diretórios reais ou arquivos de arquivamento que contêm arquivos e subdiretórios próprios. Consulte o final destes documentos para os formatos de arquivo suportados atualmente. Uma vez que o caminho de pesquisa é definido, você pode abrir arquivos para leitura. Se você tiver o seguinte caminho de busca definido (para usar um exemplo win32 novamente): C: mygame C: mygamemyuserfiles D: mygamescdromdatafiles C: mygameinstalleddatafiles. zip Em seguida, uma chamada para PHYSFSopenRead (textfiles / myfile. txt) (observe o separador de diretório, falta De letra de unidade e falta de separador de dir no início da seqüência de caracteres isso é independente de plataforma independente) irá verificar para C: mygametextfilesmyfile. txt, então C: mygamemyuserfilestextfilesmyfile. txt, então D: mygamescdromdatafilestextfilesmyfile. txt, então, finalmente, para Textfilesmyfile. txt dentro de C: mygameinstalleddatafiles. zip. Lembre-se de que a maioria dos tipos de arquivos e sistemas de arquivos de plataforma armazenam seus nomes de arquivo de forma sensível a maiúsculas e minúsculas, portanto, você deve ter cuidado ao especificá-los corretamente. Arquivos abertos pelo PhysicsFS não podem conter. Ou .. ou: como elementos dir. Não são apenas estes sem sentido no MacOS Classic e / ou Unix, eles são um buraco de segurança. Além disso, os links simbólicos (que podem ser encontrados em alguns tipos de arquivo e diretamente no sistema de arquivos em plataformas Unix) NÃO são seguidos até que você chame PHYSFSpermitSymbolicLinks (). Isso é deixado a seu próprio critério, como seguir um link simbólico pode permitir o acesso fora do diretório de gravação e os caminhos de pesquisa. Para a portabilidade, não há mecanismo para criar novos links simbólicos no PhysicsFS. O dir de escrita não está incluído no caminho de pesquisa, a menos que você especificamente adicioná-lo. Enquanto você PODE alterar o dir de gravação quantas vezes quiser, você provavelmente deve defini-lo uma vez e cumpri-lo. Lembre-se de que seu programa não terá permissão para gravar em todos os diretórios em sistemas Unix e NT. Todos os arquivos são abertos em modo binário não há nenhuma conversão final para textfiles. Além disso, PhysicsFS tem algumas funções de conveniência para independência de plataforma. Existe uma função para lhe dizer o separador de diretório de plataformas atual (no windows, / no Unix,: no MacOS), que é necessário apenas para configurar seus caminhos de pesquisa / gravação. Há uma função para dizer-lhe quais unidades de CD-ROM contêm discos acessíveis e uma função para recomendar um bom caminho de pesquisa, etc. Uma ordem recomendada para o caminho de pesquisa é o dir de gravação, depois o dir de base e, em seguida, o diretório de cdrom, Então qualquer arquivo descoberto. Quake 3 faz algo parecido com isto, mas move os arquivos para o início do caminho de busca. Construa jogos de Motor, como Duke Nukem 3D e Blood, coloque os arquivos por último, e use o dir base para pesquisa e escrita. Existe uma função auxiliar (PHYSFSsetSaneConfig ()) que reúne uma configuração básica para você, com base em alguns parâmetros. Veja também os comentários sobre PHYSFSgetBaseDir (). E PHYSFSgetUserDir () para obter informações sobre o que são e como eles podem ajudá-lo a determinar um caminho de pesquisa ideal. O PhysicsFS 2.0 acrescenta o conceito de montar arquivos em pontos arbitrários no caminho de busca. Se um zipfile contiver mapas / level. map e você montar esse arquivo em mods / mymod, então você teria que abrir mods / mymod / maps / level. map para acessar o arquivo, mesmo que mods / mymod isnt realmente especificado no arquivo. arquivo ZIP. Ao contrário da mentalidade Unix de montar um sistema de arquivos, mods / mymod doesnt realmente tem que existir ao montar o zipfile. É um diretório virtual. O mecanismo de montagem permite que o desenvolvedor separe arquivos na árvore e evite pisotear arquivos quando adicionar novos arquivos, como incluir suporte a mod em um jogo. Manter o conteúdo externo em uma trela apertado desta maneira pode ser de extrema importância para algumas aplicações. PhysicsFS é principalmente thread-safe. As mensagens de erro devolvidas pelo PHYSFSgetLastError são exclusivas por thread e as funções de definição de estado da biblioteca são mutexd. Para eficiência, os acessos de arquivos individuais não são bloqueados, assim você não pode com segurança ler / escrever / buscar / fechar / etc o mesmo arquivo de dois segmentos ao mesmo tempo. Outras condições de corrida são bugs que devem ser relatados / corrigidos. Enquanto você PODE usar o acesso ao arquivo stdio / syscall em um programa que tenha chamadas PHYSFS, isso não é recomendado e você não pode usar o filehandles do sistema com PhysicsFS e vice-versa. Note que os arquivos não precisam ser nomeados como tal: se você tiver um arquivo ZIP e renomeá-lo com uma extensão. PKG, o arquivo ainda será reconhecido como um arquivo ZIP pelo PhysicsFS os arquivos de conteúdo são usados ​​para determinar seu tipo sempre que possível. Tipos de arquivos atualmente suportados:.ZIP (arquivo pkZip / WinZip / Info-ZIP).GRP (Arquivos de grupo de arquivos do Build Engine).PAK (formato de arquivo Quake I / II).HOG (arquivos de arquivos HOG de Descent I / II).MVL II arquivos de movielib).WAD (DOOM motor archives) Política de seqüência de caracteres para PhysicsFS 2.0 e posterior: PhysicsFS 1.0 só poderia lidar com seqüências de caracteres ASCII terminado por nulo. Todos os caracteres ASCII altos resultaram em comportamento indefinido e não havia nenhum suporte Unicode. PhysicsFS 2.0 suporta Unicode sem quebrar compatibilidade binária com a API 1.0 usando codificação UTF-8 de todas as seqüências passadas dentro e fora da biblioteca. Todas as strings passadas pelo PhysicsFS estão em formato UTF-8 terminado por nulo. Isso significa que, se tudo o que você se importa é Inglês (caracteres ASCII lt 127), então você só usa regulares C strings. Se você se preocupa com Unicode (e você deve), então você precisa descobrir o que sua plataforma quer, necessidades e ofertas. Se você estiver no Windows e construir com suporte Unicode, suas seqüências TCHAR são dois bytes por caractere (isso é chamado de codificação UCS-2). Você deve convertê-los para UTF-8 antes de entregá-los para PhysicsFS com PHYSFSutf8FromUcs2 (). Se você estiver usando Unix ou Mac OS X, suas seqüências wchart são quatro bytes por caractere (codificação UCS-4). Use PHYSFSutf8FromUcs4 (). O Mac OS X pode fornecer UTF-8 diretamente de um CFString, e muitos Unixes geralmente dão cordas C em formato UTF-8 em todos os lugares. Se você tiver um single-byte ASCII charset, como tantos europeos codepages você pode estar fora de sorte. Bem converter de Latin1 para UTF-8 apenas, e nunca voltar para Latin1. Se você estiver acima de ASCII 127, todas as apostas estão desativadas: mova para Unicode ou use as facilidades de sua plataforma. Passando uma string C com dados ASCII de alta que não é codificado UTF-8 não fará o que você espera Naturalmente, também há PHYSFSutf8ToUcs2 () e PHYSFSutf8ToUcs4 () para obter dados de volta para um formato que você gosta. Nos bastidores, o PhysicsFS usará Unicode sempre que possível: as cadeias UTF-8 no Windows serão convertidas e usadas com as APIs de Windows de vários bytes, por exemplo. PhysicsFS oferece suporte à conversão básica de codificação, mas não uma biblioteca de seqüência inteira. Obtenha suas coisas em qualquer formato que você pode trabalhar com. Algumas plataformas e arquivadores não oferecem suporte Unicode completo nos bastidores. Por exemplo, o OS / 2 oferece somente páginas de código e o próprio sistema de arquivos não suporta codificações multibyte. Fazemos um esforço sincero para converter para / do local atual aqui, mas todas as apostas estão desativadas se você quiser entregar um caractere japonês arbitrário para esses sistemas. Sistemas operacionais modernos (Mac OS X, Linux, Windows, PocketPC, etc) devem estar bem. Muitos arquivadores específicos do jogo estão seriamente despreparados para Unicode (os descodificadores Descent HOG / MVL e Build Engine GRP, por exemplo, oferecem apenas um nome de arquivo DOS 8.3, por exemplo). Nada pode ser feito para estes, mas eles tendem a ser formatos herdados para o conteúdo existente que era tudo ASCII (e, portanto, válido UTF-8) de qualquer maneira. Outros formatos, como. ZIP, não oferecem explicitamente suporte Unicode, mas não oficialmente esperam que os nomes de arquivos sejam codificados em UTF-8 e, portanto, Just Work. A maioria de tudo faz a coisa direita sem incomodá-lo, mas é bom estar ciente destas nuances caso que não. Consulte o arquivo LICENSE. txt no diretório raiz de origens para obter direitos de licenciamento e redistribuição. Consulte o arquivo CREDITS. txt no diretório raiz de origens para obter uma lista mais ou menos completa de quem é responsável por isso. Autor: Ryan C. Gordon. Gerado em Thu Jan 28 02:56:00 2010 para physfs por 1.6.1

Comments

Popular posts from this blog

Binary Options Funciona

Máquinas De Comércio Forex Malásia

Binary Options University