проблема с неуправляемой DLL
От: Pavel Dvorkin Россия  
Дата: 26.06.08 06:28
Оценка:
Господа, подскажите, есть ли решение.

Программа написана на C# и использует неуправляемую DLL. Предложение превратить ее в управляемую не обсуждается. Все прекрасно работает. И тут мой заказчик решил запустить это приложение под Vista x64. Результат — приложение не видит DLL.

Насколько я понимаю, ситуация проста. Мой процесс там под .Net — 64 битный процесс, а 64-битный процесс не может загружать 32-битную DLL.

Что-то можно сделать без создания 64-битной DLL ? Есть ли под 64-битной Vista 32-битная .Net и если да — как указать, чтобы моя программа использовала ее ?
With best regards
Pavel Dvorkin
Re: проблема с неуправляемой DLL
От: Mab Россия http://shade.msu.ru/~mab
Дата: 26.06.08 06:47
Оценка: 14 (1)
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Что-то можно сделать без создания 64-битной DLL ?

Можно. Запускать приложение в режиме 32 бит.

PD>Есть ли под 64-битной Vista 32-битная .Net и

Есть.

PD>если да — как указать, чтобы моя программа использовала ее ?

Для этого нужно указать platform при сборке или использовать corflags.
Re: проблема с неуправляемой DLL
От: Овощ http://www.google.com
Дата: 26.06.08 06:49
Оценка: 14 (1)
Здравствуйте, Pavel Dvorkin.

Попробуйте сделать так:
CorFlags.exe YourApplication.exe /32BIT+
Re[2]: проблема с неуправляемой DLL
От: Pavel Dvorkin Россия  
Дата: 26.06.08 10:11
Оценка: 1 (1)
Здравствуйте, Овощ, Вы писали:

Воспользовался методом, о котором написал Mab, спасибо обоим.
With best regards
Pavel Dvorkin
Re[2]: проблема с неуправляемой DLL
От: Аноним  
Дата: 27.06.08 07:21
Оценка:
Здравствуйте, Mab, Вы писали:

PD>>Что-то можно сделать без создания 64-битной DLL ?

Mab>Можно. Запускать приложение в режиме 32 бит.
Mab>Для этого нужно указать platform при сборке или использовать corflags.

А если это приложение — WebService? IIS же не запустить в 32bit режиме?
Re[3]: проблема с неуправляемой DLL
От: Овощ http://www.google.com
Дата: 27.06.08 07:36
Оценка:
А>А если это приложение — WebService? IIS же не запустить в 32bit режиме?

How to switch between the 32-bit versions of ASP.NET 1.1 and the 64-bit version of ASP.NET 2.0 on a 64-bit version of Windows

IIS 6.0 supports both the 32-bit mode and the 64-bit mode.
....

ASP.NET 2.0, 32-bit version
To run the 32-bit version of ASP.NET 2.0, follow these steps:
1. Click Start, click Run, type cmd, and then click OK.
2. Type the following command to enable the 32-bit mode:
cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
3. Type the following command to install the version of ASP.NET 2.0 (32-bit) and to install the script maps at the IIS root and under:
%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i
4. Make sure that the status of ASP.NET version 2.0.50727 (32-bit) is set to Allowed in the Web service extension list in Internet Information Services Manager.

 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.