如果要向API 函数传递一个结构指针。
假如默认结构如下,
typedef struct { 
    WORD  wFormatTag; 
    WORD  nChannels; 
    DWORD nSamplesPerSec; 
    DWORD nAvgBytesPerSec; 
    WORD  nBlockAlign; 
    WORD  wBitsPerSample; 
    WORD  cbSize; 
} WAVEFORMATEX
假如我传给该API的结构中做了如下改动。把第一个数据类型改为DWORD.
那么会不会出现错误,或则是有其他的异常。
(主要是我在.net 下面调用类似API 时候的时候出现了,该问题)

解决方案 »

  1.   

    编译能通过
    会出项warning!告诉数据截断!
      

  2.   

    会把你的DWORD类型强制转换成WORD类型.
      

  3.   

    在C#下面向API这样传递的话都没有问题
    只是返回的数据有问题.
    现在假设结构中都是要求的是int类型,我穿给他都是SHORT类型的话,也出现了每有问题.之要把发挥值得中间的数据,每个相对于就够地址的偏移量不变就没有问题,但是在64位上就出现了问题.估计以前不支持64位的数据.