小编cha*_*gyu的帖子

什么时候可以((指针)(P)+1)^工作?

我正在研究delphiXE2,我正在研究PInteger.如果我在我的delphi代码中这样做

var
  P: PInteger;
  testInt: Integer;
  Scores: array[0..4] of Integer=(33,44,56,78,78);
begin
  P := @Scores;
  testInt := (P+1)^;
  WriteLn(testInt);
  ReadLn;
end;
Run Code Online (Sandbox Code Playgroud)

我收到了这个错误.

[DCC Error] Project1.dpr(23): E2015 Operator not applicable to this operand type
Run Code Online (Sandbox Code Playgroud)

PS:testInt := (P+1)^;是第23行

但是,当我尝试这个

var
  PCh: PChar;
  testchar: char;
  str: array[0..4] of char=('a','b','c','d','e');
begin
  PCh := @str;
  testchar := (PCh+1)^;
  WriteLn(testchar);
  ReadLn;
end;
Run Code Online (Sandbox Code Playgroud)

它运作良好!控制台可以打印'b'!

我不清楚这是怎么发生的,什么时候((指针)(P)+1)^可以工作?

delphi pointers pchar delphi-xe2

3
推荐指数
1
解决办法
1184
查看次数

dll中的导出是否敏感?

我正在研究win7和delphi 2010.这是我的代码.

library CFGFunc;

uses
sysUtils
Un_ExFuncDll in "base\Un_ExFuncDll.pas"
...

exports
LoadExFuncsInDLL,
...
Run Code Online (Sandbox Code Playgroud)

和Un_ExFuncDll.pas在这里

unit Un_ExFuncDll;
interface    
uses
  Classes;
  procedure LoadexfuncsIndll(); stdcall;
  ...
Run Code Online (Sandbox Code Playgroud)

编译后,该DLL不起作用.但是我LoadexfuncsIndll()LoadExFuncsInDLL()(完全匹配出口中的东西)代替了 Un_ExFuncDll.pas.然后它工作了.

Delphi 不区分大小写.但似乎dll中的导出区分大小写.那么,与他们的交易是什么?

windows delphi dll case-sensitive

3
推荐指数
1
解决办法
856
查看次数

标签 统计

delphi ×2

case-sensitive ×1

delphi-xe2 ×1

dll ×1

pchar ×1

pointers ×1

windows ×1