日期:2014-05-18  浏览次数:20769 次

写一个二次开发接口例子,帮我看一下,是一个硬件设备。得到电话号码的地理位置。
C# code

2.22.4.3    获取中国大陆的号码所在地信息
QNV_TOOL_LOCATION
功能描述 ( Description )
获取中国大陆的号码所在地信息(区号/城市名)
参数介绍 ( Parameters )
[in] nValue        - 保留
[in] pInValue
        需要检测的号码
[in] pInValueEx    - 保留
[out]pOutValue
        保存所在地信息的内存地址
[in] lBufSize    
        保存所在地信息的内存长度
返回值 ( Return Values )
    大于0其它表示成功,其它表示失败
备注 (Remarks)
- 仅做参考
- 由于随着中国手机号码归属地的升级,该数据信息不一定完全准确
例如 (Example)
     char szBuf[128];//分配足够大的空间
QNV_Tool(QNV_TOOL_LOCATION,0,”01088888888”,0,szBuf,128);     








我想请教各位,C#该怎么写这个方法呢?

------解决方案--------------------
byte[] szBuf = new byte[128];
QNV_Tool(QNV_TOOL_LOCATION,0,”01088888888”,0,szBuf,128);

至于QNV_TOOL_LOCATION这个应该是个常量吧,找到头文件定义的地方直接丢个值给它
------解决方案--------------------
byte[] szOut = new byte[这都是常量你要找到定义];
string m_strPSTN = "xxxx";
long lRet = QNV_Tool(这都是常量你要找到定义,这都是常量你要找到定义,m_strPSTN,NULL,szOut,这都是常量你要找到定义);
MessageBox.Show(szOut.ToString());

m_strPSTN那里要注意ANSI和Unicode的问题 

------解决方案--------------------
char szBuf[128];//分配足够大的空间
QNV_Tool(QNV_TOOL_LOCATION,0,”01088888888”,0,szBuf,128);


你担心的就是szBuf怎么传进去吧

byte[] szBuf = new byte[128];
IntPtr ptr=Marshal.UseUnsafexxxx(szBuf,szBuf.Lgngth);