2009-06-30 7 views
0

J'ai une bibliothèque COM Delphi héritée qui accepte une chaîne ANSI (page de code 1252) comme paramètre.
L'encapsuleur .net généré accepte une chaîne pour ce paramètre. Passer dans une corde régulière ne se termine cependant pas bien. S'il est passé dans le caractère '°', un point d'interrogation prend sa place.Enveloppe Com et pages de codes

Comment puis-je aller et déboguer cela? Est-ce que le wrapper com ne reconnaît pas le codage correct? Comment puis-je passer dans une chaîne ANSI (je peux le convertir en octets, mais l'API nécessite une chaîne, donc il est à nouveau converti en UTF16)

Répondre

0

Une solution de contournement serait d'écrire une couche intermédiaire dans un langage non géré qui serait rediriger les appels vers la bibliothèque d'origine et utiliser MultiByteToWideChar pour la conversion. C'est assez facile et une bonne solution si vous ne parvenez pas à convaincre le wrapper autrement.

+0

Ce que je me demande cependant, c'est pourquoi l'emballage n'emballe pas correctement .. –