Stefan,
This function is returning an empty array here on my computer.
I have three network adapters.
FWH GetNetCardID() is working fine here.
Stefan,
This function is returning an empty array here on my computer.
I have three network adapters.
FWH GetNetCardID() is working fine here.
Antonio,
I think I found the reason why it´s sometimes working and sometimes not.
It seems to depend on the pc the app is compiled. Compiling it with my office pc (XP64) it only runs on this pc, on others it crashes without error log, only a system message that there is a problem with he app.
If I compile it on my home pc (xp32, Sp3) it working on verey other pc.
I nerver noticed this before, I have the same version, the same environment, it´s very curious.
This function is returning an empty array here on my computer.
hb_arrayAdd(paAddress, pSubArray);
hb_itemRelease(pSubArray);FUNCTION GetNetID3 ()
LOCAL n
LOCAL cDescription, cMac, cType, cName
LOCAL aNic := GetMac ()
if ValType (aNic ) == "A"
for n := 1 TO Len (aNic)
cDescription := aNic [n,1]
cMac := aNic [n,2]
cName := aNic [n,3]
cType := cValToChar (aNic [n,4])
IF cType = "6"
MsgInfo( "Description: "+cDescription+CRLF+;
"Mac : "+cMac+CRLF+;
"Name : "+cName+CRLF+;
"Type : "+cType,;
"NIC" )
endif
next
endif
RETURN (nil)Stefan,
Use this FWH function:
char * WideToAnsi( LPWSTR );
Remember to use the memory that WideToAnsi() allocates:
char * pText = WideToAnsi( <wide_string> );
use pText ...
hb_xfree( pText );
char* pText;
......
pText = HB_FUN_WIDETOANSI (pAdapterInfo->Description);
hb_arraySet(pSubArray, 1, hb_itemPutC(pItem, pText));
hb_xfree (pText);StefanHaupt wrote:It seems to depend on the pc the app is compiled. Compiling it with my office pc (XP64) it only runs on this pc, on others it crashes without error log, only a system message that there is a problem with he app.
Stefan,
>
pText = HB_FUN_WIDETOANSI (pAdapterInfo->Description);
on runtime I get
Unrecoverable error 9023:
hb_xgrab requested to allocate zero bytes
>
That means that pAdapterInfo->Description contains a zero length string, thats why hb_xgrab() fails when it is requested to allocate zero bytes.
Stefan,
>
Maybe the addresses of the functions in the dll differs from one version to another.
>
Yes, thats possible. In those cases, the address of the used function should be obtained using GetProcAddress():
http://msdn.microsoft.com/en-us/library/ms683212(VS.85).aspx
There are many examples in these forums using GetProcAddress().
>
did you test the function GetNetCardID() against this scenario ? I found this function does not cause an error, but it returns a wrong mac and does not find all nics.
>
FWH GETNETCARDID() is working fine on Vista (just uses Windows API GetAdaptersInfo(). Though Microsoft recommends to use GetAdaptersAddresses(), GetAdaptersInfo() seems ok for us):