1.怎样向WINDOWS API 传结构形指针?
比如:
var
osvi :OSVERSIONEX;
GetVersionEx(@osvi);
上面这个正确还是下面这个?
GetVersionEx(osvi);2.对象是不是默认按引用传递参数???
比如:
procedure GetList(var sl:TStringList);
上面这个正确还是下面这个?
procedure GetList(sl:TStringList);3. 在枚举定义中,数字前的下划线(_)是什么意思,还有有的地方数字前用#,又是什么意思?
比如
var a:= $#3; 
SPCOMM中的TStopbits = {_1,_1.5,_2};

解决方案 »

  1.   

    第一个问题,GetVersionEx(@osvi);正确
    第二个问题,procedure GetList(var sl:TStringList);正确
    第三个,没意思,就是一种标识
      

  2.   

    TO: liliuyulin(人海孤鸿)
    经我测试,发现
    GetVersionEx(osvi);正确
    procedure GetList(sl:TStringList);sl的值得到更改,所以也是正确的
      

  3.   

    liliuyulin(人海孤鸿):极度无知,来混分,脸皮还厚的很。
    第一个不是太清楚:感觉应该是 osvi :^OSVERSIONEX;但楼主说试验正确.......
    第二个问题就不要用var了,list本身就是指针链表,你如果要变list[i]的内容是不必var的
    第三个问题:$指十六进制,#指ASC码,一般做通信程序的时候比较常用,
      

  4.   

    嘿嘿,liliuyulin(人海孤鸿): 
    不是程序员吧?
      

  5.   

    第2个问题,
    procedure GetList(var sl:TStringList);
    procedure GetList(sl:TStringList);
    都可以用,效果也一样。但不加var  其实更好。
    因为你可以这么用getlist(nil);
    如果你用第一种写法的话,就会出错。