问题描述
厂商提供了这两段c++的代码,要我们用在我们的程序。可是我们的程序是C#写的,谁能帮忙转成C#的语法,谢谢了!//寫入檔案,傳入機台名(32字元)與密碼(64字元)BOOLWritePasswordInfo(char*szMachineNo,char*szPassword){charstrDataFile[MAX_PATH]="C:\_UMA\DSC501H\comm\PROUMA.bin";//指定檔案名稱//編碼程序intii;for(ii=0;ii<32;ii++){if(szMachineNo[ii]=='')break;szMachineNo[ii]-=(32-ii);}for(ii=0;ii<64;ii++){if(szPassword[ii]=='')break;szPassword[ii]^=(64-ii);}//編碼程序//寫入PROUMA.bin(二進制)FILE*outfile=NULL;outfile=fopen(strDataFile,"wb");if(outfile!=NULL){fwrite(szMachineNo,sizeof(char),32,outfile);fwrite(szPassword,sizeof(char),64,outfile);fclose(outfile);}//寫入PROUMA.bin(二進制)returnTRUE;}//---------------------------------------------------------------------------------//讀取檔案,傳回機台名(32字元)與密碼(64字元)BOOLReadPasswordInfo(char*szMachineNo,char*szPassword){charstrDataFile[MAX_PATH]="C:\_UMA\DSC501H\comm\PROUMA.bin";//指定檔案名稱//讀取PROUMA.bin(二進制)FILE*infile=NULL;infile=fopen(strDataFile,"rb");if(infile!=NULL){fread(szMachineNo,sizeof(char),32,infile);fread(szPassword,sizeof(char),64,infile);fclose(infile);}//讀取PROUMA.bin(二進制)//解碼程序intii;for(ii=0;ii<32;ii++){if(szMachineNo[ii]=='')break;szMachineNo[ii]+=(32-ii);}for(ii=0;ii<64;ii++){if(szPassword[ii]=='')break;szPassword[ii]^=(64-ii);}//解碼程序returnTRUE;}//---------------------------------------------------------------------------------
解决方案
解决方案二:
直接生成DLL..用C#调...不就行了么--,其实我没看懂..
解决方案三:
dllimport引入char*用string或stringbuilder
解决方案四:
大概看了下,也就是數據類型和一些特殊方法需要按C#的來,別的也不需要改吧,自己琢磨一下,就當學習一下C#嘛,別輕易張口讓別人給你做。
解决方案五:
引用1楼l2999019的回复:
直接生成DLL..用C#调...不就行了么--,其实我没看懂..
正解!c#要用指针需要unsafe
解决方案六:
就这么简单个程序,还要紧急求助。不会一点C的代码都看不懂吧。就是打开个文件,按规则写入和读取数据。
解决方案七:
同问,直接DllImport调用C++的dll不就行了,还转神马啊?
解决方案八:
如果你能看懂这段代码是做神马的,你就知道用C#咋个写了···
解决方案九:
花俩小时把c#撸一遍就是你受益很长时间的事