2009-12-07 5 views
1

Я намереваюсь начать писать 64-битное научное вычислительное приложение (обработка сигналов) для Windows с использованием Microsoft Visual Studio 2008. Что я должен иметь в отношении платформы разработки?запуск 64-разрядной разработки приложений Windows

Как бы это отличалось от разработки 32 бит? Какие могут быть проблемы с переносом для 32-битной версии, которые у меня уже есть (нормально - это может быть слишком рано, чтобы спросить ... еще до начала компиляции)?

Как вы могли догадаться, я ищу общие направления. Все указатели были бы очень благодарны! :)

Заранее спасибо ..

+3

Вы должны дать больше информации, чтобы получить ответы. Вы разрабатываете с помощью собственного или управляемого кода? Это меняет многое ... – PatriceVB

+0

Спасибо! Это было бы родным. – user173438

ответ

3

При установке Visual Studio 2008, обратите внимание на отметку в поле, которое устанавливает 64-битный компилятор и инструменты, так как по умолчанию это не.

Тогда вы можете обратиться к этим статьям для руководств по 32 миграции 64-битных:

+0

Очень полезно. Благодаря! – user173438

2

Развитие в 32 бит и 64 бит такой же, насколько развитие управляемого кода (.NET) обеспокоен, до тех пор, как вы скомпилировать код usign ANY CPU option , Таким образом, весь ваш код, разработанный на вашем компьютере, будет отлично работать как на 32-битной, так и на 64-битной платформе.

Если вы занимаетесь разработкой на C++, тогда вам, возможно, придется скомпилировать в соответствии с конкретной платформой и скомпилировать дважды (один в x86 и другой в x64).

1

Важнейшим отличием является размер указателя. На 32-битном 32-битном и 64-битном. int и long остаются такими же.

1

Во-первых, вы должны знать, что окна 64 бит может работать и 64 бит и 32 бит в режиме эмуляции WOW64, поэтому вам придется решить, хотите ли вы разрешить это или вас интересует только «чистый» бит 64 бит.
Предполагая, что вы хотите работать в обоих режимах, вы должны принять следующие моменты во внимание:

  1. Если ваше приложение использует реестра, вы должны учитывать, что несколько ключей, как HKLM имеет два входа. Например, HKEY_LOCAL_MACHINE \ SOFTWARE для 64 бит-программ и HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node для 32-разрядных программ. Как и в случае с , если ваше приложение использует папку System32 , теперь вам нужно будет иметь дело с двумя папками: System32 для 64 бит и SysWOW64 для 32 бит.

  2. Если вы используете код управления, то должен выбрать способ построения приложения . Если его сделать interop вызывает неуправляемый код, чем вы, нужно построить его дважды: один с платформой , установленный на x64, и один с платформой x86.Если у вас нет звонков на неуправляемый код, чем вы можете построить его как платформу AnyCPU.

  3. И, очевидно, больше памяти (каждый указатель занимает 8 байт, а не 4 байта)

+0

Спасибо! Очень полезно. Хотя в настоящее время это все родные C++, в какой-то момент я просто могу изменить UI на C# или что-то, а часть вычисления - на C++ (нужно поработать над этим). – user173438

Смежные вопросы