TC官方合作论坛

标题: win32api和结构体好难 [打印本页]

作者: justme    时间: 2015-4-19 19:48
标题: win32api和结构体好难
DWORD RasEnumEntries(
  LPCTSTR reserved,
  LPTCSTR lpszPhonebook,
  LPRASENTRYNAME lprasentryname,
  LPDWORD lpcb,
  LPDWORD lpcEntries
);
reserved,是保留参数,必须设置为NULL。

lpszPhonebook,制定一个“phone-book”文件的名称,如果设置成NULL,那么系统使用的是默认的“phone-book”文件的名称。

lprasentryname,RASENTRYNAME结构体的缓冲区。这个函数会把每一个“phone-book”填充到这个缓冲区数组中。

lpcb,传入RASENTRYNAME结构体的大小,返回成功写入的字节大小。

lpcEntries,返回找到连接的数量。

RasEnumEntries结构体格式如下:

typedef struct _RASENTRYNAME {
  DWORD  dwSize;
  TCHAR  szEntryName[RAS_MaxEntryName + 1];
#if (WINVER >= 0x500)
  DWORD dwFlags;
  TCHAR  szPhonebookPath[MAX_PATH + 1];
#endif
} RASENTRYNAME;

第一次接触win32和结构体,感觉好难,以上是函数原型和结构体格式,在tc中要怎样写呢?
作者: 13141918    时间: 2015-4-19 20:11
这个是C语言的  
作者: justme    时间: 2015-4-19 20:16
13141918 发表于 2015-4-19 20:11
这个是C语言的

当然是c语言的,如果msdn上都用tc语言那就省事了
作者: rainshine    时间: 2015-4-19 20:17
reserved永远 int  0
lpsz指向字符串的指针 也就是char *或者wchar*,推荐:RasEnumEntriesW 此参数用wchar*
lprasentryname,指向结构体的指针,貌似tc还不支持结构体传指针。。。额我只能这么表达,因为结构体实际上就是传过去地址,不过因为tc的性质,所以实际上我们这个拿不到的 - -只能自己分配内存然后传过去int地址,然后再读出来各个成员的值。
lpcb,int传地址
lpcEntries,int传地址
作者: rainshine    时间: 2015-4-19 20:17
如果你是第一次接触api- -
作者: rainshine    时间: 2015-4-19 20:17
建议先从最简单的结构体开始- -不然你会被吓到
作者: rainshine    时间: 2015-4-19 20:20
typedef struct _RASENTRYNAME {
  DWORD  dwSize;
  TCHAR  szEntryName[RAS_MaxEntryName + 1];
#if (WINVER >= 0x500)
  DWORD dwFlags;
  TCHAR  szPhonebookPath[MAX_PATH + 1];
#endif
} RASENTRYNAME;
这个结构体的意思就是,两个成员,如果WindowsVersion大于等于500,那就再俩 = =。
作者: justme    时间: 2015-4-19 20:24
rainshine 发表于 2015-4-19 20:17
reserved永远 int  0
lpsz指向字符串的指针 也就是char *或者wchar*,推荐:RasEnumEntriesW 此参数用wchar ...

意思是tc现在还不支持这种结构体的写法?也就是说tc没办法调用这个函数了?
作者: rainshine    时间: 2015-4-19 20:25
justme 发表于 2015-4-19 20:24
意思是tc现在还不支持这种结构体的写法?也就是说tc没办法调用这个函数了? ...

自己分配内存自己读
作者: justme    时间: 2015-4-19 20:28
justme 发表于 2015-4-19 20:24
意思是tc现在还不支持这种结构体的写法?也就是说tc没办法调用这个函数了? ...

虽然不是很明白,还是谢谢你了
作者: sam7894604    时间: 2015-4-19 20:35
淡淡说一句…
TC 5.0 可以写出来,只是我累了不想翻…

改天可能会开源,或是找人翻。
作者: justme    时间: 2015-4-19 20:44
sam7894604 发表于 2015-4-19 20:35
淡淡说一句…
TC 5.0 可以写出来,只是我累了不想翻…

得到rainshine和老鬼两位大神的指点,深感荣幸,恭候大神出源码了




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1