Тема: Как перенести программу на ОС 64 bit?

Попробовал запустить программу на машине с 64bit Windows и столкнулся с тем, что не работает подключенная библиотека Microsoft Scripting Runtime (scrrun.dll).

Подозреваю (не было возможности проверить), что могут быть проблемы с функциями типа
<code>
Public Declare Function ShellExecute Lib "shell32.dll"...
..."kernel32"...
...user32...
</code>
и т.п.

У кого-нибудь есть опыт перехода на 64 bit?

Re: Как перенести программу на ОС 64 bit?

В свойстве проекта/Build/Platform target: укажите x64
Подозреваю что Вы пишете в VS

Re: Как перенести программу на ОС 64 bit?

SmeL пишет:

В свойстве проекта/Build/Platform target: укажите x64
Подозреваю что Вы пишете в VS

Да нет, речь идет о VBA.
Все, о чем спрашивал,подключается в проект VBA.

Re: Как перенести программу на ОС 64 bit?

Из справки
"Для того, чтобы использовать функции Win 32 API их необходимо объявить, используя оператор Declare.

Declare Function GetCurrentDirectory Lib "kernel32" Alias "GetCurrentDirectoryA" (ByVal buffer As String, ByVal nSize As Long) As Long

Таким образом мы объявили функцию GetCurrentDirectory, которая возвращает текущий каталог."

Re: Как перенести программу на ОС 64 bit?

Посмотрите тута

http://msdn.microsoft.com/ru-ru/library/ee691831.aspx

Там для 10-го офиса, правда. Но суть понятна.

Re: Как перенести программу на ОС 64 bit?

Спасибо bender, буду разбираться.
Но похоже перспективы не очень радужные, т.к. в автокаде (2009) VBA 6.3, а не 7.
Интересно какой VBA в AutoCAD 2010/2011 VBA module 64-bit?
http://usa.autodesk.com/adsk/servlet/it … eID=123112

Re: Как перенести программу на ОС 64 bit?

Anatoly пишет:

Но похоже перспективы не очень радужные, т.к. в автокаде (2009) VBA 6.3, а не 7.

Перспективы еще менее радужные, т.к. еще чуть-чуть и в AutoCAD нельзя будет использовать VBA совсем.
Так что мой совет - пока есть время - переписывай все на .NET (VB.NET или C# - это уже на твой выбор).

Re: Как перенести программу на ОС 64 bit?

Александр Ривилис пишет:

Перспективы еще менее радужные, т.к. еще чуть-чуть и в AutoCAD нельзя будет использовать VBA совсем.
Так что мой совет - пока есть время - переписывай все на .NET (VB.NET или C# - это уже на твой выбор).

Думаю на VB.NET легче будет.
Но пока еще до 2011 версии VBA поддерживается, в 2012 посмотрим.

Re: Как перенести программу на ОС 64 bit?

Anatoly пишет:

Но пока еще до 2011 версии VBA поддерживается

Я убедился на практике, что поддержка эта уже - вроде поддержки штанов, глючит, виснет... С милым и симпатичным VBA, хочешь не хочешь, пора завязывать.

Re: Как перенести программу на ОС 64 bit?

LeonidSN пишет:

Я убедился на практике, что поддержка эта уже - вроде поддержки штанов, глючит, виснет... С милым и симпатичным VBA, хочешь не хочешь, пора завязывать.

Я завязал сним где то 6 лет назад, после того как отдал проект заказчику, а он просто не заработал, перевел я тогда весь код в dll и горя не знал

Re: Как перенести программу на ОС 64 bit?

Прошу прощения, что вопрос не в ветке .Net, но раз уж зашел разговор...

Александр Ривилис пишет:

Цитата   
...Так что мой совет - пока есть время - переписывай все на .NET (VB.NET или C# - это уже на твой выбор).

Что нужно для работы:
Visual Studio 2008 для AutoCad 2009?
VS 2010 для AutoCad 2011?
Что еще?

(изменено: Александр Ривилис, 13 ноября 2010г. 00:37:49)

Re: Как перенести программу на ОС 64 bit?

VS 2008 хватит для всех перечисленных версий AutoCAD. В принципе можно воспользоваться бесплатным SharpDevelop
Еще не помешает посмотреть ролик VBA -> VB.NET по-русски

Re: Как перенести программу на ОС 64 bit?

Александр Ривилис пишет:

VS 2008 хватит для всех перечисленных версий AutoCAD.

Т.е. для AutoCad 2009 можно использовать и VS 2008 и VS 2010?
(вопрос связан с тем, что сейчас продают только VS 2010)

Имеет ли значение версия: Standard или Professional?

Re: Как перенести программу на ОС 64 bit?

Anatoly пишет:

Т.е. для AutoCad 2009 можно использовать и VS 2008 и VS 2010?

Если писать на .NET то можно использовать и 2005 и 2008 и 2010. А вот если надумаешь писать на ObjectARX используя C++, то только 2005.

Anatoly пишет:

Имеет ли значение версия: Standard или Professional?

Если я ничего не путаю, то VS 2010 Standard Edition не существует (в 2008-ой версии была). Так что Professional.

Re: Как перенести программу на ОС 64 bit?

Anatoly пишет:

(вопрос связан с тем, что сейчас продают только VS 2010)

При покупке любого продукта Microsoft можно заказать Downgrade Option, т.к. имеете право пользоваться бесплатно еще двумя предшествующими версиями покупаемого продукта.
Для VS 2010 это означает, что вы получите еще дистрибутивы предшествующих версий (2008, 2005) по цене болванок диска (по 27-30$). Очень полезная возможность.

Re: Как перенести программу на ОС 64 bit?

Спасибо, будем покупать 2010

Re: Как перенести программу на ОС 64 bit?

Все понятно, что VBA уже не жилец, и в будущих версиях поддержки его не будет. Но пока-то он есть, и под версии до 2011 включительно его можно было бы использовать. И в связи с этим у меня вопрос по VBA под 64-битный автокад 2010 - 2011.
Почему глючат формы? Элементы управления работают через раз; невозможно даже текст забить в textbox, хотя форма вроде модальная.. А запущенная немодальная вообще, такое ощущение, живет жизнью отдельной от автокада и юзера..  :D Ее даже закрыть стандартным "крестиком" не получается... Можно ли что-то изменить в данной ситуации? (под 32 бита все нормально работает..)

Re: Как перенести программу на ОС 64 bit?

Причина в том, что если в AutoCAD x86 VBA работает внутри (в процессе) AutoCAD, то под x64 он работает в отдельном процессе. От этого и все (или многие) проблемы. А вот можно ли их победить - не в курсе. И даже проверить не могу, т.к. с x64 не работаю.