VC# и win32 API
От: DmitrySergeev  
Дата: 04.04.02 17:53
Оценка:
Привет !
Я тут первый раз установил VS7.
Создал проект на VC#, Windows Application.
Возник вопрос, а можно ли с VC# использовать
функции win32 API ? Если да то как.
Спасибо.
Re: VC# и win32 API
От: IT Россия linq2db.com
Дата: 04.04.02 23:06
Оценка:
Здравствуйте 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);
    }
}
Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: VC# и win32 API
От: DmitrySergeev  
Дата: 05.04.02 04:42
Оценка:
Спасибо. Получилось. Тогда не работает 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>
Re: VC# и win32 API
От: Silver_s Ниоткуда  
Дата: 05.04.02 07:16
Оценка:
по этому делу есть хорошая статья на этом сайте
Статьи/.NET/Взаимодействие/Взаимодействие с dll
Re: VC# и win32 API
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 05.04.02 07:31
Оценка:
Здравствуйте DmitrySergeev, Вы писали:

DS>Привет !

DS>Я тут первый раз установил VS7.
DS>Создал проект на VC#, Windows Application.
DS>Возник вопрос, а можно ли с VC# использовать
DS>функции win32 API ?
Можно. Но лучше не стоит. Тебе что конкретно нужно?

DS>Если да то как.

Атрибут DllImport
AVK Blog
Re[2]: VC# и win32 API
От: DmitrySergeev  
Дата: 05.04.02 11:01
Оценка:
DS>>Привет !
DS>>Я тут первый раз установил VS7.
DS>>Создал проект на VC#, Windows Application.
DS>>Возник вопрос, а можно ли с VC# использовать
DS>>функции win32 API ?
AVK>Можно. Но лучше не стоит. Тебе что конкретно нужно?
Почему не стоит ? Нужно WNet...
DS>>Если да то как.
AVK>Атрибут DllImport
Ок.
Re[3]: VC# и win32 API
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 05.04.02 11:51
Оценка:
Здравствуйте DmitrySergeev, Вы писали:

AVK>>Можно. Но лучше не стоит. Тебе что конкретно нужно?

DS>Почему не стоит ?
Потому что твое приложение будет зависеть от этих самых API, а их может не быть вовсе на какой нибудь Windows CE или FreeBSD.

DS>Нужно WNet...

Да, это придется делать напрямую. Лучше всего будет написать специальный класс, а приложению общаться только через него.
AVK Blog
Re[3]: VC# и win32 API
От: VladD2 Российская Империя www.nemerle.org
Дата: 05.04.02 20:51
Оценка:
Здравствуйте DmitrySergeev, Вы писали:

DS>Тогда не работает MessageBox.Show. Почему ?


Потому что имена пересеклись. Пиши полный путь (от сборки).

DS>А можно ли как то слинковать проект статически,

DS>чтобы не просились при запуске mscoree.dll и подобные.

Нет. На машину нужно установить .Net-runtime.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: VC# и win32 API
От: VladD2 Российская Империя www.nemerle.org
Дата: 05.04.02 20:55
Оценка:
Здравствуйте AndrewVK, Вы писали:

AVK>Лучше всего будет написать специальный класс, а приложению общаться только через него.


Это всегда лучше. Лишняя абстаракция никому не помешает, даже если переносимость вообще не нужна.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.