2010-12-07 6 views
1

J'ai travaillé avec Visual Studio 2008 (visual c) pour créer une extension php, donc après avoir écrit le code c et compilé l'ensemble du projet, un fichier dll a été généré dans le dossier debug . I copié ce fichier dll dans le dossier php/ext (dossier extensions) et j'ajouté cette ligne dans php.iniVersion du compilateur VC pour la création d'extensions php

extension = php_talkphp.dll (php_talkphp.dll est le nom de dll)

puis je redémarre le serveur apache pour initialiser les extensions php. mais une erreur est survenue: ce qui est le message d'erreur:

alt text

Je sais que cela est dû à la version du compilateur, mais comment puis-je utiliser la version VC6 dans un VS2008?

merci vous

+0

Peut-être Ma question a besoin d'explications! – SmootQ

Répondre

1

Vous devez utiliser les extensions construites avec le même compilateur que votre installation de PHP.

Dans ce cas, vous utilisez une installation de PHP construite avec Visual C++ 6, qui est un compilateur incroyablement ancien. Votre extension est construite avec Visual C++ 9.0, ce qui est beaucoup plus récent.

Vous ne pouvez pas mélanger des extensions et des installations PHP construites avec différents compilateurs VC.

solutions possibles:

  • Obtenez l'extension TalkPHP construit avec Visual C++ 6 et construire votre propre avec VC6. Vous aurez probablement du mal à l'obtenir car c'est un compilateur non supporté et indisponible.

ou

  • Installer une version de PHP construit avec Visual C++ 9.0. Ceci introduira cependant différents problèmes:
    1. Vous devrez soit basculer vers IIS, soit utiliser une version de Apache construite avec Visual C++ 9.0. Apache Lounge has them. Vous devrez installer le Visual C++ 9.0 Runtime si vous ne l'avez pas déjà.
+0

merci pour cette réponse, mais n'est-il pas possible d'ajouter un compilateur VC6 à un VC++ 9 ?? – SmootQ

+0

@Simo TAQI - Vous ne pouvez pas mélanger des binaires PHP avec des extensions construites avec un compilateur Visual C++ différent, car ils utilisent des implémentations différentes et incompatibles de la bibliothèque C++ de Microsoft, donc s'ils devaient commencer à passer des conteneurs entre eux, il y aurait problèmes. – birryree

Questions connexes