我想用以下代码检查文件的MD5:
[Code]
var
MD5Comp: string;
procedure ExitProcess(uExitCode:UINT);
external 'ExitProcess@kernel32.dll stdcall';
procedure CurStepChanged(CurStep: TSetupStep);
begin
MD5Comp := '32297BCBF4D802298349D06AF5E28059';
if CurStep = ssInstall then
begin
if not MD5Comp=GetMD5OfFile(ExpandConstant('{app}\cg.npa')) then
begin
MsgBox('A patched version detected. Setup will now exit.', mbInformation, MB_OK);
ExitProcess(1);
end;
end;
end;
Run Code Online (Sandbox Code Playgroud)
但是在比较两个字符串时出现"类型不匹配"错误,所以我假设这不是你比较它们的方式.
编辑:我已经尝试 if not CompareText(MD5Comp,GetMD5OfFile(ExpandConstant('{app}\cg.npa')))=0但它永远不会执行if中的内容.
我正在学习汇编程序,并且找到了此说明
ADD R0, R0, R0, LSL #1
Run Code Online (Sandbox Code Playgroud)
我知道它会将R0的内容乘以3,但我不了解它的工作原理(在这种情况下,我不知道LSL的作用)。
感谢您的时间
我正在尝试编写一个程序,将一个节点保存到.txt中,但是当我执行程序时,它编写的内容较少(有时甚至没有).这是代码:
public static void main(String[] args) {
GeneradorSeñal gs = new GeneradorSeñalSinusoidal("sgsg");
Double salida;
try{
FileOutputStream out = new FileOutputStream("out.txt");
OutputStreamWriter muestras = new OutputStreamWriter(out);
for(int i=0; i<500; i++){
salida=gs.getSalida();
muestras.write(String.valueOf(salida)+"\n");
System.out.println(i+"\t"+salida);
}
}catch(Exception e){
e.getStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
GeneradorSeñal和GeneradorSeñalSinusoidal是创造正弦曲线的类.gs.getSalida()返回正弦曲线的值,正弦曲线类运行良好,这不是问题.