MS VC Project for PHP 4/5 extension

stellar

Guest
MS VC Project for PHP 4/5 extension

Под Win32 расширений PHP никогда не писал.

Попытка сделать проект обычной DLL ни к чему не привела (собирается в объектники, но не линкуется), ругается на operator delete для любого класса С++ (даже на тестовый пример с std::string).

Посему, господа, нужен сабж (весь проект или описание того, что надо указать в файле проекта), чтобы все собралось с поддежкой C++.
Всемирный разум в виде Google/Yandex/PHP.net юзал, информации нет.
С опциями сборки DLL (multithread/single.... etc etc) игрался, не помогло.
 

neko

tеam neko
ext_skel_win32
или ручками

stl
в пхп
вообще это странное сочетание
не рекоммендуется
 

stellar

Guest
Автор оригинала: neko
ext_skel_win32
или ручками
Это тоже делал. Объектники сибираются, но не линкуются в DLL по вышеуказанной причине.

stl
в пхп
вообще это странное сочетание
не рекоммендуется
Специально STL в PHP никто и не использует.

Есть библиотека (объектная, с использованием STL). К ней надо написать PHP 4/5 экстеншен. Библиотека здоровенная, переписать ее на C нет ни возможности ни бюджета. Делать с-wrapper бесполезно, поскольку сама библиотека потребует линковки с STL библиотеками.

При всем при этом к ней надо написать PHP 4/5 экстеншен.

Кто делал нечто подобное PHP ext + WIN32 + C++, пожалуйста, откликнитесь.

-~{}~ 29.01.05 23:19:

P.S. Как написано тут:
http://www.devarticles.com/c/a/Cplusplus/Developing-Custom-PHP-Extensions-Part-1/

Делал; НЕ РАБОТАЕТ.
Подозреваю, что "проблема в консерватории". Потому прошу кинуть в меня архивом проекта.
 

neko

tеam neko
Делать с-wrapper бесполезно, поскольку сама библиотека потребует линковки с STL библиотеками.
ну а динамически линковать если?

я конечно могу ошибаться
но что-то мне подсказывает что в стд. контейнерах в сочетании с пхп будут проблемы с памятью
если конечно не делать собственные аллокаторы
 

stellar

Guest
Автор оригинала: neko
ну а динамически линковать если?
Пробовал. Если бы не перепробовал все, не полез бы сюда клянчить архив проекта. :(((((

я конечно могу ошибаться
но что-то мне подсказывает что в стд. контейнерах в сочетании с пхп будут проблемы с памятью
если конечно не делать собственные аллокаторы
А с чего там им надо быть? Да, и где про это написано?

ИМХО, при *правильном* программировании, протечек при использовании С++ классов, быть не должно. Тем не менее, вопос не об этом.
 

neko

tеam neko
Пробовал. Если бы не перепробовал все, не полез бы сюда клянчить архив проекта.
хочу уточнить
hello world на stl
как экстеншен
тоже не собирается?

если да, я пошел пробовать
 

stellar

Guest
Автор оригинала: neko
хочу уточнить
hello world на stl
как экстеншен
тоже не собирается?

если да, я пошел пробовать
MS VC 6.0 с идущей в поставке STL (с STLport не проверял)

1) Берем обычный пример, полученный путем запуска ext_skel_win32
2) Проверяем, собираем, тестируем.
Все работает.

3) Добавляем три строчки;
#include <string> // первая строка

PHP_FUNCTION(test_hello)
{
std::string * pS = new std::string("Hello, World!"); // вторая строка
[поскипано]

delete pS; // Третья строка
}

4) Собираем; все собирается, но НЕ ЛИНКУЕТСЯ.

Где кривизна?
 

neko

tеam neko
так, мне было чуть некогда
счас попробовал
правда шестерки не было, делал на 7-мой
как и следовало ожидать все линкуется и работает

подробное объяснение решения тут

но
я счас еще раз подумал и точно уверен
что в чистом виде stl
будет ликать память
 

stellar

Guest
Автор оригинала: neko
так, мне было чуть некогда
счас попробовал
правда шестерки не было, делал на 7-мой
Вчера у меня на седьмой тоже собралось.

подробное объяснение решения тут
:D :D :D
Был я на Гугле, был.

но
я счас еще раз подумал и точно уверен
что в чистом виде stl
будет ликать память
По каким причинам? Можно URL?
 

Huckster

Guest
stellar
Добрый день. Вы, я вижу, сами себе уже противоречите. Начали под Windows расширения под PHP писать.... :)

Впрочем, все это оффтоп.
 

stellar

Guest
Автор оригинала: Huckster
stellar
Добрый день. Вы, я вижу, сами себе уже противоречите. Начали под Windows расширения под PHP писать.... :)

Впрочем, все это оффтоп.
Но, в отличие от Вас, юноша, я не делаю на Винде службу сертификатов 24x7. И уж тем более не использую для серьезных проектов Apache на Windows.

Но, судя по Вашему прошлому флейму на одном известном форуме, Вам этого понять не дано.
 

Huckster

Guest
stellar
Да Господь с Вами, насчет юноши Вы мне льстите.

И уж тем более не использую для серьезных проектов Apache на Windows.
Хе-хе, по поводу этого второй раз неохота. Лучше уж по поводу чего-нибудь другого.
 

tony2001

TeaM PHPClub
общайтесь в привате.
не засоряйте форум вашими "дурак - сам дурак".

stellar
хватит уже морочить голову себе и другим.
пиши и собирай под нормальной ОС, где хотя бы отдебажить можно, а не просто получить окошко с "Invalid read/write".
 

stellar

Guest
stellar
хватит уже морочить голову себе и другим.
пиши и собирай под нормальной ОС, где хотя бы отдебажить можно, а не просто получить окошко с "Invalid read/write".
Очевидно, Вы считаете нормальной системой Linux?
Спешу Вас обрадовать, под ним у меня все отлично собирается и работает.
Но я задал вопрос по *WINDOWS*, поэтому огромная просьба Вам не засорять тему обсуждением Linux vs Windows. Спасибо.
 
Сверху