Переехал на x64 и вызов апи из C# перестал работать
От: Аноним  
Дата: 06.12.06 18:47
Оценка:
Определение функции:
[DllImport("user32")]
private static extern ulong SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);

Использование:
SendMessage(TargetWindow, 277, 3, 0); // WM_VSCROLL

Работало под WinXP, теперь Win2003x64 и не пашет.

В настройках проекта стоит x64 CPU.

В чем дело? Надо поменять входные аргументы с int на long? Или что-то еще?

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



06.12.06 23:10: Перенесено модератором из 'WIN API' — Хитрик Денис
Re: Переехал на x64 и вызов апи из C# перестал работать
От: Mab Россия http://shade.msu.ru/~mab
Дата: 06.12.06 21:13
Оценка:
Здравствуйте, Аноним, Вы писали:

Как минимум lParam и wParam там станут 64-битными, так что их нужно объявлять как IntPtr.
Re[2]: Переехал на x64 и вызов апи из C# перестал работать
От: Кос todosoft.org
Дата: 07.12.06 09:18
Оценка:
Mab>Как минимум lParam и wParam там станут 64-битными, так что их нужно объявлять как IntPtr.

Я могу ошибаться, но их всё таки надо было сразу описывать как IntPtr ещё в старом проекте.
Re[3]: Переехал на x64 и вызов апи из C# перестал работать
От: Mab Россия http://shade.msu.ru/~mab
Дата: 07.12.06 09:49
Оценка:
Здравствуйте, Кос, Вы писали:

Кос>Я могу ошибаться, но их всё таки надо было сразу описывать как IntPtr ещё в старом проекте.

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