Православный взгляд на ИТ

О C#
StanB., православный из РПЦ - 23:09 18.09.2003
Сегодня поставил VS .NET: всё меня порадовало, но только нельзя вызывать функции WinAPI. Например:

private void Form1_Paint(object sender,System.Windows.Forms.PaintEventArgs e)
{
SetPixelV(...);
}

Подскажите пожалуйста, как это сделать.

                


Re: О C#
Братец Дыкъ, православный обнагленец из OCA - 23:34 18.09.2003
StanB., Вы писали:
> Сегодня поставил VS .NET: всё меня порадовало, но только нельзя вызывать функции WinAPI. Например:
>
> private void Form1_Paint(object sender,System.Windows.Forms.PaintEventArgs e)
> {
> SetPixelV(...);
> }
>
> Подскажите пожалуйста, как это сделать.

Первое, этого делать не надо - пользуйся дотнетовскими класами.
Второе, в тех редких случаях когда это необходимо, есть Platform Invocation Services (PInvoke), подробней можешь почитать здесь:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/csref/html/vcwlkPlatformInvokeTutorial.asp

                


Re: О C#
StanB., православный из РПЦ - 00:03 20.09.2003
Извиняюсь, но что такое "дотнетовские" классы?

                


Re: О C#
Братец Дыкъ, православный обнагленец из OCA - 00:58 20.09.2003
StanB., Вы писали:
> Извиняюсь, но что такое "дотнетовские" классы?

.Net включает в себя огромную библиотеку стандартных классов, которые в частности почти стопроцентно перкрывают собой Win32 API. На практике они реальзованы как враперы вокруг этого API. Без них использование C# совершенно бесмыслено.

                


Re: О C#
StanB., православный из РПЦ - 13:32 20.09.2003
Задам ещё один вопрос, наверное, глупый. Как я понял, все эти классы хранятся в dll'ях. Можно ли их код включить в исполняемый файл, чтобы он работал без этих библиотек?

                


Re: О C#
Пабло, православное (РПЦ МП) - 22:25 20.09.2003
Да вообщем то можно (ИМХО), но не к чему эт, платформа .NET специально сделана чтоы составить конкуренцию Java, а программы базирующиеся на ней скомпилированы в т.н. байт-код, также и .NET. То есть у тебя программа в вде-байт кода, то на машине обязательно присутствие интерпретатора, такоая программа обычно занимает не много места и выпоолняется достаточно быстро, если ты переведешь программу из байт-кода в обычный испольняемый, то программа достаточно сильно увеличится, и исполнятсья будет заметно медленнее. Основной упор в Java и .NET сделан на кроссплаформенность и Web-решения.

                


Re: О C#
StanB., православный из РПЦ - 22:40 20.09.2003
Интересно, почему это интерпретируемые программы выполняются быстрее скомпилированных? Я думал, что наоборот.

И какие тогда файлы я должен приложить к exe'шнику, чтобы он запустился на чужой машине?

                


Re: О C#
Пабло, православное (РПЦ МП) - 16:26 21.09.2003
StanB., Вы писали:
> Интересно, почему это интерпретируемые программы выполняются быстрее скомпилированных? Я думал, что наоборот.
Скомпилированные программы выполяются прямо процессором, т.к. они находятся в виде набора команд. Интепретируемые программы предварительно должны быть поняты интерпретатором, а затем только выполнены. Я не совсем корресктно сказал, что программы на Java и .NET это интерпретируемые программы, это предкомпилированные программы, т.е. собранные в специальный код, который при загруске на выполнение перекомпилируется в код процессора.

> И какие тогда файлы я должен приложить к exe'шнику, чтобы он запустился на чужой машине?
Для платформы .NET нужны .NET Framework Redistributable или .NET Framework SDK.

                


Re: О C#
StanB., православный из РПЦ - 13:25 20.09.2003
Не могли бы Вы дать линк на примеры использования этих классов? У меня урезанный .NET, без документпции.