C++的16进制转C#?

来源:百度知道 编辑:UC知道 时间:2024/06/06 03:27:27
我调用C++的dll,返回值为指针类型 如下:
int_stdcall GetTime(char*ip,char*dat1); //ip为输入参数,dat1输出
e.g.:
char c[7];
GetTime("192.168.0.1",c)
c[0]=0x05;
c[1]=0x10;
.......
c[5]=0x1E
c[6]=0x03
请问在c#中怎么调用 然后得到一个时间的字符串啊?
高手请赐教!!
多谢赐教!
可能我没说清楚,动态库函数输出的参数是一个指针
我就想知道 在C#中调用该函数的话 怎样从这个指针中读取值来并转为字符串!

对不起 可能我还是没有说清楚
不是时间类型与字符串类型的问题, 我就是想把C++动态库函数指向区域的16进制的数据读出来转成字符串!!

我是这样写的,可是不对啊??
[DllImport("eCardM.dll")]
public static extern int GetTime(string ip, StringBuilder time);

private void button3_Click(object sender, EventArgs e)
{
StringBuilder time = new StringBuilder(7);
GetTime("192.168.1.2", time);
textBox1.Text = time.ToString();
}

其实不光是这个 动态库文件中还有其他的函数也是这样的 不知道该怎么用:
Extern “C”_declspec(dllexport)
Int_stdcall GetNetParam(char*ip,char*dat);
e.g.:
char c[12

将char*声明成StringBuilder
[DllImport("dll文件")]
public static extern int GetTime(StringBuilder ip,StringBuilder date);

调用上面的函数,记得给StringBuilder一个长度,
StringBuilder strb=new StringBuilder(长度)
然后date因为是引用类型所以,你可以直接取date

hi 我

第一:C#里也可以用0x方式,只不过只能操作数字类型,比如int,long等.
第二:C#里可以直接把string转成DateTime.
eg:
string dateTimeString="2009-08-21 8:33:21";
DateTime dateTime=Convert.ToDateTime(dateTimeString);

这个dateTimeString只要符合时间格式,都可以直接转换,包括可以是"2009-08-21 8:33"(日期时间,但不带秒),也可以是"2009-08-21 8:33:21.230"
还可以只有时间,可以只有日期,也可以是其他的,如UTC这种.

不就是网络校时吗?全给你了。
6.UDP对时服务器端
/*
using System.Data;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using System.Text;
*/
public void start_server()
{
while(true)
{
byte[] recData=server.Receive(ref receivePoint);
ASCIIEncoding encode=new ASCIIEncoding();
st