Comments 36
UFO landed and left these words here
Мне приходилось писать что-то подобное. Мой совет: писать на С а не на С++, так как таблица экспорта функции в С++ из-за возможности перегрузки функций выглядит очень некрасиво. В крайнем случае могу посоветовать прописывать таблицу экспорта вручную. С компилятором Intel не встречался, но с Dll-ки, написанный в Visual C++ без проблем подцепляются к проектам на том же C# через PInvoke (как x32 так и x64). В качестве средства многопоточного программирования в .NET лучше использовать ParallelFX, разица в производительности ParallelFX и OpenMP в Visual C++ малозначительна, а иногда ParallelFX даже быстрее.
Тут, видимо, вся соль в Intel C++ — начиная с неюзабельных визардов, и заканчивая непонятками, куда складывать билды. Но одолел, да :)

Тока заголовки подвели )
Визард майкрософтовский. Билды он тоже складывает невесть куда (это не от компилятора зависит).
Тогда при чем тут это — «в Intel отвечает за юзабельность» — если от компилятора не зависит?

Только что повторил: vs2008, с++. У меня все работает, складывает, куда надо, опция build в меню на проекте доступна.
Про опцию Билд — да, это интельный косяк. А вот скидывает майкрософтовский компилятор тоже в папку солюшна.
Хы, что за чертовщина: создал свежий проект, сохранил, побилдил — легло в папку Debug под проектом, как и надо. Закрыл, открыл заново, побилдил — легло в корень Solution. Чудеса!
Ну что ж, это win (во всех смыслах), можно писать багрепорт
Ага… в connect.microsoft.com… чтобы к выходу vs2010 это прочитали. Это как с поддержкой x64 solution config — то она есть, то ее нету, короче магия какая-то ;)
Куда складывать билды — это прям в свойствах проекта обычно указать можно, хотя в случае intel — не знаю
Еще забыл добавить, что если используешь компилятор C++ от MS, то отладка солюшена в котором есть проект на native C++ и проект на .net проходит без проблем, можно ставить брейкпоинты и там и там.
Значит мне повезло — все действительно работает, у вас какая версия VS?
Я имел ввиду редакцию, стоит ли SP1, там много багов пофиксили.
Сейчас попробовал создать подобный миксованный проект для x64, баги подтверждаю. Видимо тогда и в самом деле x32 только собирал. Сейчас при импорте из нативной dll вылетает BadImageFormatException.
разница в производительности ParallelFX и OpenMP в Visual C++ малозначительна

Пробовал. Для сильнопараллелизуемых приложений, С++/OpenMP быстрее на порядок (т.е. где-то в 10 раз), а с грамотным использованием SIMD можно и того больше выжать. ParallelFX, даже когда весь код написан с указателями (т.е. он unsafe) все равно тормозит так, что волей-неволей начинаешь смотреть на С++.
Видимо у вас очень специфическая задача, может её лучше c помощью GPGPU решать. В .NET SIMD тоже можно впарить, если очень хочется. Вот к примеру с помощью этого NetASM.
Я думал о Microsoft Accelerator, на самом деле. Не знаю развивается проект или нет, но раньше пробовал. В GPGPU свои тонкости…
В создании 64-битных приложений я не силен, но хотелось бы узнать: портировать, скажем, aimp на 64-бита кто-нибудь мог бы взяться? :) Там по моему, какая-то беда с контестным меню.
Артем Измайлов, в моей с ним переписке, сказал что для этого нужен Embarcadero. Вот я хз, может кто-нибудь осилит?
Вопросы из зала:
1) А есть необходимость? Ну да, какие-нибудь операции декодирования будут чуть быстрее, но так ли это важно? Фубар вон, при всей своей 32-битности, никаких проблем на х64 не испытывает.
2) Неужели Дельфи дожил-таки до 64-битного компилера? Иначе это будет не портирование, а переписывание с нуля.
Хочу предложить всем заинтересованным 64-битностью сайт www.viva64.com. На сайте имеется масса полезных ссылок, инструмент проверки 64-битного кода и статьи по тематике 64-битности. Например:
7 шагов по переносу программы на 64-битную систему
20 ловушек переноса Си++ — кода на 64-битную платформу
64 бита, /Wp64, Visual Studio 2008, Viva64 и все, все, все...
Безопасность 64-битного кода
Вау! Серьезные расценки. Впрочем для такой нишевой области это естественно.
Only those users with full accounts are able to leave comments. Log in, please.