今天把一个以前c下的des算法给封装成dll,然后再c#中调用,一切都很正常。但是刚才吃饭的时候,突然一时兴起,想测试一下加密密文长度稍微大点时,dll能否正常运行,就在此时一个奇怪的现象发生了。如下图:
红圈圈中的密文被console.writeline给显示出来时,居然在最后面显示了我的一些文件的路径,(这里显示的是我的cxf开发包下的一个jar文件,这个路径从何而来??为什么能够显示出来呢??是什么原因,呵呵。
更奇怪的是,原来我的输出语句是:
Console.WriteLine("\n密文:");
Console.WriteLine(buf1); 它显示的结果是上图,但是我把这两个给组合起来后,
Console.WriteLine("密文:"+buf1.ToString());
居然显示又发生了变化,见图2:
family?? whats this ?? 到底是什么的原因,我又在
Console.WriteLine("密文:"+buf1.ToString());
的密文两字前面加了个换行,居然又变成了第一幅图。换行到底在这里起到了什么作用??
我想这和缓冲区应该有关系吧,不过c#的console应该是代码安全的啊,怎么能出现这种情况?
【如果谁需要,我可以提供dll和测试例程】