Привет !
Я тут первый раз установил VS7.
Создал проект на VC#, Windows Application.
Возник вопрос, а можно ли с VC# использовать
функции win32 API ? Если да то как.
Спасибо.
Здравствуйте DmitrySergeev, Вы писали:
DS>Возник вопрос, а можно ли с VC# использовать функции win32 API ? Если да то как.
Дык. Легко:
using System;
using System.Runtime.InteropServices;
class MyClass
{
[DllImport("User32.dll")]
public static extern int MessageBox(int h,string m,string c,int type);
public static int Main()
{
return MessageBox(0,"Hello, Win32","",0);
}
}
Если нам не помогут, то мы тоже никого не пощадим.
Спасибо. Получилось. Тогда не работает MessageBox.Show. Почему ?
А можно ли как то слинковать проект статически,
чтобы не просились при запуске mscoree.dll и подобные.
Пока.
IT>
IT>using System;
IT>using System.Runtime.InteropServices;
IT>class MyClass
IT>{
IT> [DllImport("User32.dll")]
IT> public static extern int MessageBox(int h,string m,string c,int type);
IT> public static int Main()
IT> {
IT> return MessageBox(0,"Hello, Win32","",0);
IT> }
IT>}
IT>
Здравствуйте DmitrySergeev, Вы писали:
DS>Привет ! DS>Я тут первый раз установил VS7. DS>Создал проект на VC#, Windows Application. DS>Возник вопрос, а можно ли с VC# использовать DS>функции win32 API ?
Можно. Но лучше не стоит. Тебе что конкретно нужно?
DS>Если да то как.
Атрибут DllImport
DS>>Привет ! DS>>Я тут первый раз установил VS7. DS>>Создал проект на VC#, Windows Application. DS>>Возник вопрос, а можно ли с VC# использовать DS>>функции win32 API ? AVK>Можно. Но лучше не стоит. Тебе что конкретно нужно?
Почему не стоит ? Нужно WNet... DS>>Если да то как. AVK>Атрибут DllImport
Ок.
Здравствуйте DmitrySergeev, Вы писали:
AVK>>Можно. Но лучше не стоит. Тебе что конкретно нужно? DS>Почему не стоит ?
Потому что твое приложение будет зависеть от этих самых API, а их может не быть вовсе на какой нибудь Windows CE или FreeBSD.
DS>Нужно WNet...
Да, это придется делать напрямую. Лучше всего будет написать специальный класс, а приложению общаться только через него.
Здравствуйте DmitrySergeev, Вы писали:
DS>Тогда не работает MessageBox.Show. Почему ?
Потому что имена пересеклись. Пиши полный путь (от сборки).
DS>А можно ли как то слинковать проект статически, DS>чтобы не просились при запуске mscoree.dll и подобные.
Нет. На машину нужно установить .Net-runtime.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.