标签: pascal

Delphi XE6在iOS中链接C代码

我使用需要C代码的Delphi XE6在Android上构建了一个应用程序.但是在iOS上我无法使其工作.我怀疑这个问题与手臂/拇指状态有关,但我不确定.两个系统都没有问题从Pascal调用C代码.但是如果C代码回调一个Pascal过程,iOS会生成一个"bad system call (12)"

这是pascal代码:

function testarm(a,b:integer):integer; cdecl; external "testC.o";

Procedure testC;
Begin
  testarm(1,2);
end;

function BackToPascal(a,b:integer): integer; cdecl;
  Begin
  result := a+b;
end;

......

exports
  BackToPascal;
Run Code Online (Sandbox Code Playgroud)

这是C代码:

extern int BackToPascal(int a,int b);

extern int testarm(int a,int b)
{
   int i;
   i = BackToPascal(a,b);
   return i+1;
}
Run Code Online (Sandbox Code Playgroud)

在android上这是我编译的方式(它正在工作):

..."arm-linux-androideabi-gcc.exe" -c test.c -o test.o -O3 -mfloat-abi=softfp -mfpu=neon -marm -march=armv7-a -mtune=cortex-a8
Run Code Online (Sandbox Code Playgroud)

在ios上:

xcrun -sdk iphoneos clang -c -arch armv7 test.c -O3 -mfpu=neon -mtune=cortex-a8 -marm -march=armv7-a -mfloat-abi=softfp
Run Code Online (Sandbox Code Playgroud)

我怀疑我的xcode设置是错误的,但我无法弄清楚原因.

当我调试,错误时调用来testC在 …

c delphi pascal ios delphi-xe6

68
推荐指数
1
解决办法
713
查看次数

是否有适用于Delphi/Pascal的静态代码分析工具?

是否有适用于Delphi/Pascal的静态代码分析工具?

我已经看到了很多C++和.NET的选项,但Delphi/Pascal没有.

理想情况下可以集成到持续集成系统中.

delphi pascal static-analysis

36
推荐指数
5
解决办法
2万
查看次数

Pascal及其当前的应用

我在1997年学习了Turbo Pascal,我非常喜欢它作为一种语言.一切都非常有条理,编译器确保你以正确的方式做事.我后来尝试过Delphi但从未对它感兴趣.

从那时起,我使用了许多不同的编程和脚本语言(C,C++,PHP,Python,Perl,TCL),最近我开始考虑我的旧Turbo Pascal时代.

所以,我想知道Pascal在今天可能有用的实用目的以及可用的API和框架.有没有人在现代开发环境中使用Pascal或者它只是一种死语言?

澄清我的问题:Pascal可以用于现代应用程序开发.它是否被使用以及如何使用?

维基百科链接或快速谷歌搜索无济于事,我一直在那里.这就是我问"专家"的原因.

pascal

33
推荐指数
8
解决办法
3万
查看次数

Object Pascal vs Delphi?

Object Pascal和Delphi之间的区别是什么?它们是一样的吗?它们之间有什么区别和相似之处,哪一个更有用?

delphi pascal

29
推荐指数
4
解决办法
2万
查看次数

在Delphi/Free Pascal中:是一个运算符还是它只是表示一个指针类型?

在Delphi/Free Pascal中:是一个运算符还是它只是表示一个指针类型?

示例代码

program Project1;

{$APPTYPE CONSOLE}

var
    P: ^Integer;

begin
    New(P);

    P^ := 20;
    writeln(P^); // How do I read this statement aloud? P is a pointer?

    Dispose(P);

    readln;
end
Run Code Online (Sandbox Code Playgroud)

delphi pascal pointers dereference

25
推荐指数
1
解决办法
9798
查看次数

在C中声明Pascal样式的字符串

在C中,有一个很好的方法来定义长度优先,Pascal样式的字符串作为常量,所以它们可以放在ROM中吗?(我正在使用一个带有非GCC ANSI C编译器的小型嵌入式系统).

0例如,终止C字符串.{ 'f','o','o',0}.

Pascal字符串在第一个字节中具有长度,例如.{ 3,'f','o','o'}.

我可以声明一个C字符串放在ROM中:

const char *s = "foo";
Run Code Online (Sandbox Code Playgroud)

对于Pascal字符串,我可以手动指定长度:

const char s[] = {3, 'f', 'o', 'o'};
Run Code Online (Sandbox Code Playgroud)

但是,这很尴尬.有没有更好的办法?也许在预处理器中?

c string pascal

20
推荐指数
4
解决办法
7257
查看次数

Xcode 5.0安装命令行工具时出错

我刚下载了Xcode(5.0)的最新版本,需要在Lazarus上开发一些Pascal代码.但是,安装需要我使用命令行工具,这些工具在下载时会出现问题.当我单击安装时,程序向我发送此错误消息:"无法安装'命令行收费'发生未知错误.请稍后再试."

我也尝试过使用其他IDE,比如轻量级,但它们都需要Free Pascal,这是需要命令行工具的工具.

有谁知道问题是什么?

提前致谢 :)

xcode pascal lazarus ios

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

C++是否有像Pascal这样的"with"关键字?

withPascal中的关键字可用于快速访问记录的字段.有谁知道C++是否有类似的东西?

例如:我有一个包含许多字段的指针,我不想这样输入:

if (pointer->field1) && (pointer->field2) && ... (pointer->fieldn)
Run Code Online (Sandbox Code Playgroud)

我真正想要的是C++中的这样的东西:

with (pointer)
{
  if (field1) && (field2) && .......(fieldn)
}
Run Code Online (Sandbox Code Playgroud)

c++ pascal with-statement

18
推荐指数
8
解决办法
2万
查看次数

RemObjects PascalScript与DWS脚本的优缺点是什么?

我打算在我的应用程序中包含一个pascal脚本.它不需要任何Web访问,只需访问我的应用程序中的类.应该快速(编译).我看到有许多脚本可用,有些是解释器,但在编译器中RemObjects pascal脚本Delphi Web脚本(DWS)似乎是强大的并且积极地追求.

请问有人可以提出一个优点吗?谢谢

delphi compiler-construction pascal dwscript

17
推荐指数
3
解决办法
3464
查看次数

从3d透视重绘图像到2d

我需要用Pascal/Delphi/Lazarus编写的逆透视变换.见下图:

图像处理

我想我需要遍历目标像素,然后计算源图像中的相应位置(以避免舍入错误等问题).

function redraw_3d_to_2d(sourcebitmap:tbitmap, sourceaspect:extended, point_a, point_b, point_c, point_d:tpoint, megapixelcount:integer):tbitmap;
var
   destinationbitmap:tbitmap;
   x,y,sx,sy:integer;
begin
  destinationbitmap:=tbitmap.create;
  destinationbitmap.width=megapixelcount*sourceaspect*???; // I dont how to calculate this
  destinationbitmap.height=megapixelcount*sourceaspect*???; // I dont how to calculate this
  for x:=0 to destinationbitmap.width-1 do
    for y:=0 to destinationbitmap.height-1 do
    begin
        sx:=??;
        sy:=??;
        destinationbitmap.canvas.pixels[x,y]=sourcebitmap.canvas.pixels[sx,sy];
    end;
  result:=destinationbitmap;
end;
Run Code Online (Sandbox Code Playgroud)

我需要真正的公式......所以OpenGL解决方案并不理想......

delphi math geometry pascal lazarus

17
推荐指数
2
解决办法
4767
查看次数