I'm no C# expert, but if the ieee488_send method is expecting a pointer for the second and last arguments, then I think you need to declare them BOTH using "ref" (as you did the last one). [DllImport("IIEEE_32M")] public extern static int send(int address,ref string strCommand,int xx, ref int status); send(inGpibAddress, Command, 0, inStatus); Also, does the method expect 3 or 4 arguments? In your VC++ example you have 4 arguments in the header file definition for ieee488_send. In C# you are only defining it as having 3 arguments... ---------- There go my people. I must find out where they are going so I can lead them. - Alexander Ledru-Rollin