Мое почтение всем. Делаю ассемблерную вставку в методе класса С++ под Visual Studio 2005. Необходимо вызвать из нее оператор new. Проблема в синтаксисе -- не знаю как вызвать. 'call new' приводит к ошибке С2244. Вариант 'call operator new' дает ошибку синтаксиса. MSDN по этому поводу очень скупо вещает: Оператор new не перегружен, т.е. получается, что его таки можно позвать. Может быть кто-то сталкивался с подобным? Заранее благодарен.
Чайник решил у себя попробовать. Вот такая штука Код (Text): #include <stdio.h> double *tPtr; void main() { _asm { push 8 call new mov tPtr, eax add esp, 4 } delete tPtr; printf ("%d\n", tPtr); } компилируется, работает, ненулевой указатель на экран выводит.
Спасибо, этот код действительно работает. Ошибка появляется, если подключить iostream вместо stdio.h. В чем дело пока не понимаю...
Mika0x65 Не за что. Чайники тоже бывают полезны... ну водички там вскипятить. А насчет iostream, то там, наверное, в каком-нить неявно подключаемом файле типа xlocale или xdebug оператор new перегружается.