Вопрос к знатокам С#...

 

надо бы, конечно, самому вникнуть в С#, но мне надо только вставить

в C# программу вызовы к DLL и все...

1. имеется DLL на С++

2. в DLL такая вот функция 

int ConnectTo(uchar&  puc_ServerIP[],// in
              int     i_Port,        // in
              int&    ph_Client[]);  // out

 вот болванка в C# для вставки:

        public string ServerIP = "172.22.144.10";
        public int i_Port = 2000;
        public int h_Client;
        public int i_Error;

        [DllImport("D:\\NetEventsProcDLL.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
        public static extern int ConnectTo(string ps_ServerIP, int pi_Port, int ph_Client);

 понятно что неверно, как будет верно ?

 

Примерно так 

using System.Runtime.InteropServices;

class Win32API {
    [DllImport("User32.dll")]
    public static extern bool PtInRect(ref Rect r, Point p);

 MSDN в помощь. https://msdn.microsoft.com/ru-ru/library/awbckfbz(v=vs.110).aspx

Passing Structures
Passing Structures
  • msdn.microsoft.com
Для многих неуправляемых функций в качестве параметра должны быть переданы члены структур (в Visual Basic это определяемые пользователем типы) или члены классов, определяемые в управляемом коде программы. Для сохранения исходного размещения и выравнивания при передаче структур или классов в неуправляемый код необходимо предоставить...
 
Yuriy Asaulenko:

Примерно так 

using System.Runtime.InteropServices;

class Win32API {
    [DllImport("User32.dll")]
    public static extern bool PtInRect(ref Rect r, Point p);

 MSDN в помощь. https://msdn.microsoft.com/ru-ru/library/awbckfbz(v=vs.110).aspx

это все понятно, просто не имею временни  вникать во все тонкости...то есть, на халяву хотел,
но вот вижу придется нырять... в любом случае, благодарю за внимание...