> You should be passing byte arrays... don't know what size the name or type
> should be but I'd guess the IP address and subnet mask are both 4 bytes and
> the MAC address is 6, unless they're in ASCII text format in which case give
> 16 bytes for IP address and subnet mask and 18 bytes for MAC address.
It's ASCII text format.
Still got an "A call to PInvoke function
'DCPConnector:

cpDll_GetFoundDevices' has unbalanced the stack."
error.
What I've got now:
[DllImport("DcpDll.dll", CharSet=CharSet.Ansi)]
private static extern int DcpDll_GetFoundDevices
(int piIdx,
byte[] psName,
byte[] psIP,
byte[] psSubnet,
byte[] psMAC,
byte[] psType);
public void GetDeviceList(Boolean save)
{
int MAX_MEMBER = 500;
int iReturn;
byte[] sName = new byte[260];
byte[] sIP = new byte[16];
byte[] sSubnet = new byte[16];
byte[] sMAC = new byte[18];
byte[] sType = new byte[260];
for (int i = 0; i < MAX_MEMBER; i++)
{
if (save)
{
iReturn = DcpDll_GetFoundDevices(i, sName,
sIP, sSubnet, sMAC, sType);
}
}
}