Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

VB->C# помогите !!!! перегнать 1 строчку!

22K
11 мая 2007 года
Pancher
15 / / 28.04.2007
Прива! всем!
Суть такая прога на VB там библиотека используется(верней функции из этой библиотеки переопределяются) вроде так , я VB почти не знаю(
вот эта строчка:
Private Declare Function SetCapture Lib "user32.dll" (ByVal hWnd As Long) As Long
Private Declare Function ReleaseCapture Lib "user32" () As Long
Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
ПоДСКАЖИТЕ КАК В c#-ЭТО ПЕРЕГНАТЬ ХОТЯБЫ КОД ДЛЯ 1 СТРОЧКИ
сп! за рание!:)
273
13 мая 2007 года
3A3-968M
1.2K / / 22.12.2005
Вот так вроде:
Код:
[FONT=Courier New][SIZE=2][COLOR=#008000]//Private Declare Function SetCapture Lib "user32.dll" (ByVal hWnd As Long) As Long
[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New][[/FONT][/SIZE][FONT=Courier New][SIZE=2][COLOR=#008080]DllImport[/COLOR][/SIZE][SIZE=2]([/SIZE][SIZE=2][COLOR=#800000]"user32.dll"[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New])][/FONT]
[FONT=Courier New][[/FONT][/SIZE][FONT=Courier New][SIZE=2][COLOR=#0000ff]return[/COLOR][/SIZE][SIZE=2]: [/SIZE][SIZE=2][COLOR=#008080]MarshalAs[/COLOR][/SIZE][SIZE=2]([/SIZE][SIZE=2][COLOR=#008080]UnmanagedType[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New].I4)][/FONT]
[/SIZE][FONT=Courier New][SIZE=2][COLOR=#0000ff]private [/COLOR][/SIZE][SIZE=2][COLOR=#0000ff]static [/COLOR][/SIZE][SIZE=2][COLOR=#0000ff]extern [/COLOR][/SIZE][SIZE=2][COLOR=#008080]Int32[/COLOR][/SIZE][SIZE=2] SetCapture([[/SIZE][SIZE=2][COLOR=#008080]MarshalAs[/COLOR][/SIZE][SIZE=2]([/SIZE][SIZE=2][COLOR=#008080]UnmanagedType[/COLOR][/SIZE][SIZE=2].I4)][/SIZE][SIZE=2][COLOR=#008080]Int32[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New] hWnd);[/FONT][/SIZE]
[SIZE=2][FONT=Courier New][/FONT]
[/SIZE][SIZE=2][COLOR=#008000][FONT=Courier New]//Private Declare Function ReleaseCapture Lib "user32" () As Long[/FONT]
[/COLOR][/SIZE][SIZE=2][FONT=Courier New][[/FONT][/SIZE][FONT=Courier New][SIZE=2][COLOR=#008080]DllImport[/COLOR][/SIZE][SIZE=2]([/SIZE][SIZE=2][COLOR=#800000]"user32.dll"[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New])][/FONT]
[FONT=Courier New][[/FONT][/SIZE][FONT=Courier New][SIZE=2][COLOR=#0000ff]return[/COLOR][/SIZE][SIZE=2]: [/SIZE][SIZE=2][COLOR=#008080]MarshalAs[/COLOR][/SIZE][SIZE=2]([/SIZE][SIZE=2][COLOR=#008080]UnmanagedType[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New].I4)][/FONT]
[/SIZE][FONT=Courier New][SIZE=2][COLOR=#0000ff]private [/COLOR][/SIZE][SIZE=2][COLOR=#0000ff]static [/COLOR][/SIZE][SIZE=2][COLOR=#0000ff]extern [/COLOR][/SIZE][SIZE=2][COLOR=#008080]Int32[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New] ReleaseCapture();[/FONT]
[/SIZE][SIZE=2][COLOR=#008000][FONT=Courier New]//Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long[/FONT][/COLOR][/SIZE]
[SIZE=2][COLOR=#008000][FONT=Courier New][/FONT]
[/COLOR][/SIZE][SIZE=2][FONT=Courier New][[/FONT][/SIZE][FONT=Courier New][SIZE=2][COLOR=#008080]DllImport[/COLOR][/SIZE][SIZE=2]([/SIZE][SIZE=2][COLOR=#800000]"user32.dll"[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New])][/FONT]
[FONT=Courier New][[/FONT][/SIZE][FONT=Courier New][SIZE=2][COLOR=#0000ff]return[/COLOR][/SIZE][SIZE=2]: [/SIZE][SIZE=2][COLOR=#008080]MarshalAs[/COLOR][/SIZE][SIZE=2]([/SIZE][SIZE=2][COLOR=#008080]UnmanagedType[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New].I4)][/FONT]
[/SIZE][FONT=Courier New][SIZE=2][COLOR=#0000ff]private [/COLOR][/SIZE][SIZE=2][COLOR=#0000ff]static [/COLOR][/SIZE][SIZE=2][COLOR=#0000ff]extern [/COLOR][/SIZE][SIZE=2][COLOR=#008080]Int32[/COLOR][/SIZE][SIZE=2] WindowFromPoint([[/SIZE][SIZE=2][COLOR=#008080]MarshalAs[/COLOR][/SIZE][SIZE=2]([/SIZE][SIZE=2][COLOR=#008080]UnmanagedType[/COLOR][/SIZE][SIZE=2].I4)][/SIZE][SIZE=2][COLOR=#008080]Int32[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New] xPoint,[/FONT]
[FONT=Courier New][[/FONT][/SIZE][FONT=Courier New][SIZE=2][COLOR=#008080]MarshalAs[/COLOR][/SIZE][SIZE=2]([/SIZE][SIZE=2][COLOR=#008080]UnmanagedType[/COLOR][/SIZE][SIZE=2].I4)][/SIZE][SIZE=2][COLOR=#008080]Int32[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New] yPoint);[/FONT][/SIZE]
[SIZE=2][FONT=Courier New][/FONT]
[/SIZE][SIZE=2][COLOR=#008000][FONT=Courier New]//Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long[/FONT]
[/COLOR][/SIZE][SIZE=2][FONT=Courier New][[/FONT][/SIZE][FONT=Courier New][SIZE=2][COLOR=#008080]DllImport[/COLOR][/SIZE][SIZE=2]([/SIZE][SIZE=2][COLOR=#800000]"user32.dll"[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New])][/FONT]
[FONT=Courier New][[/FONT][/SIZE][FONT=Courier New][SIZE=2][COLOR=#0000ff]return[/COLOR][/SIZE][SIZE=2]: [/SIZE][SIZE=2][COLOR=#008080]MarshalAs[/COLOR][/SIZE][SIZE=2]([/SIZE][SIZE=2][COLOR=#008080]UnmanagedType[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New].I4)][/FONT]
[/SIZE][FONT=Courier New][SIZE=2][COLOR=#0000ff]private [/COLOR][/SIZE][SIZE=2][COLOR=#0000ff]static [/COLOR][/SIZE][SIZE=2][COLOR=#0000ff]extern [/COLOR][/SIZE][SIZE=2][COLOR=#008080]Int32[/COLOR][/SIZE][SIZE=2] GetCursorPos([/SIZE][SIZE=2][COLOR=#008080]IntPtr[/COLOR][/SIZE][SIZE=2] lpPoint);
[/SIZE][/FONT]
22K
14 мая 2007 года
Pancher
15 / / 28.04.2007
/*//Private Declare Function SetCapture Lib "user32.dll" (ByVal hWnd AsLong) As Long
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.I4)]
private static extern Int32 SetCapture([MarshalAs(UnmanagedType.I4)]Int32 hWnd);
*/


СП!!

а что значит строчка "[return: MarshalAs(UnmanagedType.I4)]
" и зачем её использовать????
22K
14 мая 2007 года
Pancher
15 / / 28.04.2007
вы не знаете как С# MSVS2005 создать библиотеку верней UserControl приложение , потом полученую библиотеку подклучить к другому проекту, и что бы всё коректно работало


P.S. пересел обратно MSVS2005)))
273
14 мая 2007 года
3A3-968M
1.2K / / 22.12.2005
[return: ...] означает, что атрибут применяется к типу возвращаемого значения метода. Создать библиотеку со своими контролами - File->New->Project...->Windows Control Library. Далее на проект правой кнопкой, выбираем Add New Item и выбираем User Control
22K
15 мая 2007 года
Pancher
15 / / 28.04.2007
яно, но этоя уже сделал!т.е. проект userControl, в папке bin\Debug\*.dll скомпилены лежат,
но когда создаёшь новый Project->Windows Application то как мою dll к этому проекту, просто add ref и добавить в Toolbox, на чинаешь отрисовывать вылетает вся студия(( может надо както по другому dll создать подскажите!плз!
22K
16 мая 2007 года
Pancher
15 / / 28.04.2007
Я уже нашёл косяк он в проге был !!! спасибо ра помошь, !!!!!)))
потратил 3 дня (( но результат есть))). Вы говорили про [return...], понятно, а если у меня координаты и Int32 мне не подходит, если тип поставить другой ?? то MarshalAs(...... . I4)?? прокатит?? и за что I4 отвечает если не трудно поясните!
22K
16 мая 2007 года
Pancher
15 / / 28.04.2007
Помогите ещё перевисти строчки)
Private Type POINTAPI
x As Long
y As Long
End Type
я зделал так:
private class POINTAPI
{
long x;
long y;
}
но так не катит мне надо потом объевить переменую типа POINTAPI (пример POINTAPI a; у меня написано POINTAPI a = new POINTAPI(); так как объяслен класс). И при такой реализации не выходит так:
a.x или a.y -нет токих переменых, но это я понимаю, я не понимаю как надо правельно объевить POINTAPI !!! помогите!!!!!!!
713
17 мая 2007 года
Ap0k
360 / / 13.03.2006
Почитайте тут
22K
17 мая 2007 года
Pancher
15 / / 28.04.2007
Посмотрел!ка к я понял там dll объевляется на C# и С++,а уменя VB в C# надо!(мож я чё не до понял).
как объявлять dll я уже знаю, вопрос в моём предыдущем сообщении ,это меня ща вылнует больше!!!!!
713
18 мая 2007 года
Ap0k
360 / / 13.03.2006
Советую ресурс http://pinvoke.net/ для решения подобных вопросов ;-)
Вот например как выглядит описание структуры POINT из WinAPI:
Код:
// http://pinvoke.net/default.aspx/Structures.POINT
   [StructLayout( LayoutKind.Sequential )]
   public struct POINT {
      public int X;
      public int Y;

      public POINT( int x, int y ) {
          this.X = x;
          this.Y = y;
      }

      public static implicit operator System.Drawing.Point( POINT p ) {
          return new System.Drawing.Point( p.X,  p.Y );
      }

      public static implicit operator POINT( System.Drawing.Point p ) {
          return new POINT( p.X, p.Y );
      }
   }

Таким же образом можно описать и вашу структуру..
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог