搜索
aardio官方社区 门户 查看主题

调用API byte数据类型的问题

发布者: winner | 发布时间: 2012-11-4 13:37| 查看数: 3859| 评论数: 11|帖子模式

本帖最后由 winner 于 2012-11-5 02:49 编辑

已经解决...



还是在搞wlanapi....遇到一个数据类型的问题



有个api,
http://msdn.microsoft.com/en-us/library/windows/desktop/ms706749(v=vs.85).aspx

C++声明是这种

DWORD WINAPI WlanGetAvailableNetworkList(
  _In_        HANDLE hClientHandle,
  _In_        const GUID *pInterfaceGuid,
  _In_        DWORD dwFlags,  
  _Reserved_  PVOID pReserved,
  _Out_       PWLAN_AVAILABLE_NETWORK_LIST *ppAvailableNetworkList
);

其中的第四个参数,是个2级指针,对应的结构体 WLAN_AVAILABLE_NETWORK_LIST(在下面有写)




下面是C++声明的机构体

typedef struct _WLAN_AVAILABLE_NETWORK_LIST {  
DWORD                  dwNumberOfItems;  
DWORD                  dwIndex;  
WLAN_AVAILABLE_NETWORK Network[1];
} WLAN_AVAILABLE_NETWORK_LIST, *PWLAN_AVAILABLE_NETWORK_LIST;



typedef struct _WLAN_AVAILABLE_NETWORK {  
WCHAR                  strProfileName[256];  
DOT11_SSID             dot11Ssid;  
DOT11_BSS_TYPE         dot11BssType;  
ULONG                  uNumberOfBssids;  
BOOL                   bNetworkConnectable;  
WLAN_REASON_CODE       wlanNotConnectableReason;  
ULONG                  uNumberOfPhyTypes;  
DOT11_PHY_TYPE         dot11PhyTypes[WLAN_MAX_PHY_TYPE_NUMBER];  
BOOL                   bMorePhyTypes;  
WLAN_SIGNAL_QUALITY    wlanSignalQuality;  
BOOL                   bSecurityEnabled;  
DOT11_AUTH_ALGORITHM   dot11DefaultAuthAlgorithm;  
DOT11_CIPHER_ALGORITHM dot11DefaultCipherAlgorithm;  
DWORD                  dwFlags;  
DWORD                  dwReserved;
} WLAN_AVAILABLE_NETWORK, *PWLAN_AVAILABLE_NETWORK;



我将上面2个C++结构体,改成为一个aardio语言的结构体
(可以用IDE里面的工具->转换工具->aardio代码转换工具)


var WLAN_AVAILABLE_NETWORK = class{
        byte strProfileName[512];
        struct dot11Ssid = {
                INT uSSIDLength;
                INT ucSSID[32];
        }
        int dot11BssType;
        INT uNumberOfBssids;
        int bNetworkConnectable;
        INT wlanNotConnectableReason;
        INT uNumberOfPhyTypes;
        INT dot11PhyTypes[8];
        int bMorePhyTypes;
        INT wlanSignalQuality;
        int bSecurityEnabled;
        int dot11DefaultAuthAlgorithm;
        int dot11DefaultCipherAlgorithm;
        INT dwFlags;
        INT dwReserved;
}

var WLAN_AVAILABLE_NETWORK_LIST = class {
    INT dwNumberOfItems;
    INT dwIndex;
    struct Network[] = { WLAN_AVAILABLE_NETWORK() };
}


然后再aardio里面进行调用API


var c3 = pIfList2['InterfaceInfo'][3]

//获取可用列表
var wError,ssPointer = WlanGetAvailableNetworkList(hClient,c3['InterfaceGuid'],1,null,null)
//声明结构体对象
var sList = WLAN_AVAILABLE_NETWORK_LIST()
//转换指针为结构体对象
var ssidList = raw.convert(ssPointer,sList,0)   

io.print(
"SSID数量(偏移值):",ssidList['dwNumberOfItems'],ssidList['dwIndex'])

//根据偏移值,添加子结构体
for(i=1;ssidList['dwNumberOfItems'];1){
    sList.Network[ i ] = WLAN_AVAILABLE_NETWORK();
}
//再次转换
ssidList2 = raw.convert(ssPointer,sList)   

//测试输出
for(i=1;ssidList['dwNumberOfItems'];1){
   
var ssid = ssidList2.Network[ i ];
   
try{
        io.print(string.unpack(ssid.strProfileName))
        io.print(
"fromUnicode:",string.fromUnicode(ssid.strProfileName))
    }
   
execute("pause")
    win.delay(500)
   
if(i == 3){
        
break ;
    }
}




这次该弄的都弄了,改转换的都转换了...结果还是出问题了..



打印出来的ssid.strProfileName除了第一个是正确的,其他都是乱码


于是我用string.unpack(ssid.strProfileName) 打印出字节代码




第一个字节码(这个是对的,88 45 76 105 110 107 正好对应的字符串"X-Link")      


88      0       45      0       76      0       105     0       110     0       107     0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0
fromUnicode:    X-Link  (输出正确,我设置的ssid就是"X-Link")



第二个字节码
可以看到开头几个全都是0,
其中只有65是正确的,
我这个ssid名字就是 A 65对应的就是A,但是不知道为什么跑到那个位置去了
并且其中掺杂着一些不明来路的值....

0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       1       0       0       0
65      0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       1       0       0       0       19      0       0       0       1       0       0       0       0
0       0       0       1       0       0       0       6       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       62      0
0       0
fromUnicode:这里输出 为空



往后的都是错误的..

这问题是我类型用错了啊?还是api其他方便搞错了啊...
原API里面写的,要求WCHAR
我查了aardio帮助手册
里面

无符号字节
BYTE
8位
数值 例: { char chr = 'A'# }
unsigned char
BYTE
注意C++中的bool(小写)类型为一个字节(8位),等价于aardio中的byte类型.
字节
byte
char,


按说用byte应该是对了的啊..







最新评论

不争 发表于 2012-11-4 15:04:53

估计是结构体定义错了,长度不一致,所以第一个对了,后面的内存位置全飘移了,所以全错了。 另外两个结构体不要合并为一个,这样肯定会出错的,严格的按原来的定义。

估计是结构体定义错了,长度不一致,所以第一个对了,后面的内存位置全飘移了,所以全错了。
另外两个结构体不要合并为一个,这样肯定会出错的,严格的按原来的定义。
winner 发表于 2012-11-4 21:14:45

[i=s] 本帖最后由 winner 于 2012-11-4 21:20 编辑 [/i] [size=3]根据对字节码的查看, 发现第一个的字节码,是Uni

本帖最后由 winner 于 2012-11-4 21:20 编辑

根据对字节码的查看,
发现第一个的字节码,是Unicode编码格式,也就是2个字节(或者3,4个) 表示一个字符
结果发现,到了后面的2 3 4的时候,有很大偏移,而且变成了单字节格式...


第二个(字符应该是A)
1       0       0       0       65     0      0
第三个(字符是CMCC)
4       0       0       0       67      77      67      67     0     0
第四个(字符是0)
1       0       0       0       48     0      0


现在发现了点规律,就是每个字节位前面四位的值,就是字符总长度长度.....总算有点收货






字节流

88      0       45      0       76      0       105     0       110     0       107     0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0
fromUnicode:    X-Link
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       1       0       0       0       65      0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       1       0       0       0       17      0
0       0
fromUnicode: (A)
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       4       0       0       0       67      77      67      67      0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       1       0       0       0       21
0       0       0       1       0       0       0       0       0       0       0       1       0       0       0
6       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0
fromUnicode:
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       1       0       0       0       48      0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       1       0       0       0
19      0       0       0       1       0       0       0       0       0       0       0       1       0       0
0       6       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       74      0       0       0       0       0       0       0
1       0       0       0       0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       74      0       0       0       0       0       0       0       1       0
0       0
fromUnicode:
------------------------------------------------

winner 发表于 2012-11-4 21:24:04

打印了一下, 每一个不为0的字节位和字节码 根据上面帖子对比第一个和第二个发现, 这个偏移量大概是237 - 1 = 236,不知道这样算对不对...

打印了一下,
每一个不为0的字节位和字节码
根据上面帖子对比第一个和第二个发现,
这个偏移量大概是237  -  1 = 236,不知道这样算对不对....


第一个
----------
位     码
1       88  (字符X)
2       45  (字符-)
3       76  (字符L)
4       105 (i)
5       110 (n)
6       107  (k)


第二个
----------
235     1
237     65  (字符A)
253     1
255     25  (未知)


winner 发表于 2012-11-4 21:42:22

从网上找到一个牛B的家伙写的代码,也不知道是什么语言的, 看起来是自己读位 public struct WLAN_AVAILABLE_

从网上找到一个牛B的家伙写的代码,也不知道是什么语言的,

看起来是自己读位

       public struct WLAN_AVAILABLE_NETWORK_LIST
        {
            public int dwNumberOfItems;
            public int dwIndex;
            public WLAN_AVAILABLE_NETWORK[] NetWork;
            public WLAN_AVAILABLE_NETWORK_LIST(IntPtr pList)
            {
                dwNumberOfItems = Marshal.ReadInt32(pList, 0);
                dwIndex = Marshal.ReadInt32(pList, 4);
                NetWork = new WLAN_AVAILABLE_NETWORK[dwNumberOfItems];
                for (int i = 0; i < dwNumberOfItems; i++)
                {
                    IntPtr pItemList = new IntPtr(pList.ToInt32() + 8 + (i * 628));
                    WLAN_AVAILABLE_NETWORK wan = new WLAN_AVAILABLE_NETWORK();
                    wan.strProfileName = Marshal.PtrToStringUni(pItemList, 256).Replace("\0", "");
                    wan.dot11Ssid = new DOT11_SSID(new IntPtr(pItemList.ToInt32() + 512));  // now is 512+36=548
                    wan.dot11BssType =(DOT11_BSS_TYPE) Marshal.ReadInt32(pItemList, 548); // off 552
                    wan.uNumberOfBssids = (uint)Marshal.ReadInt32(pItemList, 552); // off 556
                    wan.bNetworkConnectable = System.Convert.ToBoolean(Marshal.ReadInt32(pItemList, 556)); // off 560
                    wan.wlanNotConnectableReason = (UInt32)Marshal.ReadInt32(pItemList, 560); // off 564
                    wan.uNumberOfPhyTypes = (UInt32)Marshal.ReadInt32(pItemList, 564); // off 568
                    wan.dot11PhyTypes = new DOT11_PHY_TYPE; // off 600
                    for (int j = 0; j < wan.uNumberOfPhyTypes; j++)
                    {
                        wan.dot11PhyTypes[j] = (DOT11_PHY_TYPE)Marshal.ReadInt32(pItemList, 568 + j * 4);
                    }
                    wan.bMorePhyTypes = System.Convert.ToBoolean(Marshal.ReadInt32(pItemList, 600)); // off 604
                    wan.wlanSignalQuality = (UInt32)Marshal.ReadInt32(pItemList, 604); // off 608
                    wan.bSecurityEnabled = System.Convert.ToBoolean(Marshal.ReadInt32(pItemList, 608)); // off 612
                    wan.dot11DefaultAuthAlgorithm = (DOT11_AUTH_ALGORITHM)Marshal.ReadInt32(pItemList, 612); //616
                    wan.dot11DefaultCipherAlgorithm = (DOT11_CIPHER_ALGORITHM)Marshal.ReadInt32(pItemList, 616); // off 620
                    wan.dwFlags = (UInt32)Marshal.ReadInt32(pItemList, 620); // off 624
                    wan.dwReserved = 0; // off 628
                    NetWork = wan;
                }
            }
        }

winner 发表于 2012-11-5 00:44:53

唉 这个真搞不定了,{:3_58:}

唉 这个真搞不定了,
winner 发表于 2012-11-5 02:01:49

车道山前必有路,终于解决了!!!果然不能太早放弃!不然前功尽弃

车道山前必有路,终于解决了!!!果然不能太早放弃!不然前功尽弃
winner 发表于 2012-11-5 02:37:21

[i=s] 本帖最后由 winner 于 2012-11-5 02:38 编辑 [/i] [b]成功和失败的距离,有时候只是一个单词的差距... 果然像

本帖最后由 winner 于 2012-11-5 02:38 编辑

成功和失败的距离,有时候只是一个单词的差距...

果然像LSSS.所说的,结构体定义问题,

为了找这个问题,费了一整天的功夫,

浏览了400多个网页,查阅了MSDN几乎所有能搜到的相关帖子,google翻到几十页....

结果最后发现........一个悲剧..

顺便学习了C++ ULONG DCHAR DWORD 等常用API声明的类型... 以及 C# C C++的一些常用函数.......




最终修改好的结构体:(搞了一天,就是把红色部分原来的INT修改为byte.....)

var DOT11_SSID = class {
    INT uSSIDLength;
   
byte ucSSID[32];
}


var WLAN_AVAILABLE_NETWORK = class {
    byte strProfileName[512];           
    struct dot11Ssid = DOT11_SSID();
    INT dot11BssType;
    INT uNumberOfBssids;
    int bNetworkConnectable;
    INT wlanNotConnectableReason;
    INT uNumberOfPhyTypes;
    INT dot11PhyTypes[8];
    int bMorePhyTypes;
    INT wlanSignalQuality;
    int   bSecurityEnabled;
    INT dot11DefaultAuthAlgorithm;
    INT dot11DefaultCipherAlgorithm;
    INT dwFlags;
    INT dwReserved;
}




相关资料

Native wifi API使用
http://www.cnblogs.com/hgy413/archive/2012/02/25/2368077.html


Native Wifi 学习笔记(第三天)
http://hi.baidu.com/513762516/item/174b51f5fe633ada6325d2b7


delphi2010调用wlan api的问题
http://topic.csdn.net/u/20110930/11/c59e1a88-f5ec-4fe5-ba34-391e5a4d28f3.html


WLAN API
http://blog.sina.com.cn/s/blog_4b3c1f950102dr4w.html


调用API读取WiFi信息的函数【转】
http://open.189.cn/discuz/forum.php?mod=viewthread&tid=138


C#调用wlanapi结构体声明
https://compilr.com/tak1221/test-1/main.cs


get current connection attributes using Wi-Fi API
http://social.msdn.microsoft.com/forums/en-US/windowsgeneraldevelopmentissues/thread/df69f504-ca41-4ee7-a961-b73d54c9bad2



评分

参与人数 1专家分 +200 收起 理由
Jacen.He + 200 赞一个!

查看全部评分

winner 发表于 2012-11-5 02:47:55

[i=s] 本帖最后由 winner 于 2012-11-5 02:50 编辑 [/i] [size=4]虽然2天时间只改了4个字符,但是学到的远不止这么点,

本帖最后由 winner 于 2012-11-5 02:50 编辑

虽然2天时间只改了4个字符,但是学到的远不止这么点,

首先感受到了C++的复杂,复杂的类型 复杂的指针 复杂的....各种复杂...

又感受到了aardio的灵活性,真的很强,以前是懒得看手册,现在一直开着手册看,有人说手册不全,我可以肯定的告诉你,手册里起码涵盖90%你需要的内容,剩余的10%才是需要自己琢磨的东西,起码按我目前来看,手册里已经非常满足我的需求



再就是有做windows编程,有问题还是去msdn啊.....

http://msdn.microsoft.com/library/
http://msdn.microsoft.com/en-us/windows/desktop/

roger 发表于 2012-11-5 09:08:50

宝贵的经验,值得学习

宝贵的经验,值得学习
qqmmcc 发表于 2012-11-7 23:46:11

日后需要时学习。谢谢楼主分享解决问题的经验

日后需要时学习。谢谢楼主分享解决问题的经验
aau007 发表于 2016-12-3 00:44:07
宝贵的经验,值得学习

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2017-9-22 07:01 , Processed in 0.109375 second(s), 25 queries , Wincache On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表