小编wme*_*cer的帖子

makefile中的变量目标

我正在尝试编译一组目标.然而它似乎只做第一个.下面是我的makefile的减少,显示错误.

  OBJECTS = abc def ghi
  SOURCES = abc.c def.c ghi.c

  $(OBJECTS):     $(SOURCES)
          @echo target is $@, source is $<
Run Code Online (Sandbox Code Playgroud)

在壳中,

  $ touch abc.c def.c ghi.c
  $ make
Run Code Online (Sandbox Code Playgroud)

当我运行make时,我得到以下输出:

  target is abc, source is abc.c
Run Code Online (Sandbox Code Playgroud)

所以它似乎只是在运行第一个目标.

如果我用$ ^替换$ <,则输出为:

  target is abc, source is abc.c def.c ghi.c
Run Code Online (Sandbox Code Playgroud)

我的问题是,是否可以对变量进行扩展,例如(%:%)模式?

makefile gnu-make

16
推荐指数
1
解决办法
2万
查看次数

知道使用FastMM分配内存的位置

我正在尝试使用Delphi 7调试大型应用程序中的内存使用情况.我能够安装fastmm debug full dll并使用它来解决一些泄漏问题.

我还安装了内存使用跟踪器,允许我查看分配了哪些块以及它们的大小.

我的问题是,有没有办法找出块的分配位置?我知道这是可能的,因为如果没有释放内存,则会打印堆栈跟踪.有没有办法在fastmm'戳'让它打印给定分配的堆栈跟踪?

附带问题:如果分配的起始地址已知,有没有办法找出对象是哪个类?(假设分配是针对一个对象的.

delphi fastmm

6
推荐指数
1
解决办法
1807
查看次数

Delphi中的目录路径操作?

我有一个给定文件夹的完整路径名称,例如

c:\foo\bar
Run Code Online (Sandbox Code Playgroud)

现在我想在c:\ foo里面引用一个名为baz.txt的文件,

c:\foo\bar\..\baz.txt
Run Code Online (Sandbox Code Playgroud)

我目前正在使用.. path运算符向下一级并获取我需要的文件.

是否有一个可以进行路径操作的函数,例如UpOneLevel(str) - > str?我知道我可以通过拆分字符串并删除最后一个令牌来编写一个,但我宁愿它是一个内置/库函数,所以如果有例如转义反斜杠,我不会遇到麻烦.

delphi path delphi-2007

6
推荐指数
1
解决办法
3631
查看次数

Alphablend和TransparentBlt

这个问题与我之前关于SO的问题有关.

我想结合两个alpha层,只应用于源层的特定部分.我试过的一种方法是将SourceConstantAlpha设置为$ ff(并让函数使用源图层中的alpha通道).

这种作品 - 尽管速度很慢(我想我可以通过使用ScanLines来加快速度),但这部分是因为我无法弄清楚将alpha通道设置为什么.文档表明计算是:

st.Red  = Src.Red   + (1 - Src.Alpha) * Dst.Red
Run Code Online (Sandbox Code Playgroud)

我通过猜测工作尝试了一些不同的值,但我的第一个问题是:我如何计算alpha值?

在阅读了其他一些SO问题之后,我遇到了TransparentBlt函数,它可以很好地屏蔽(和快速)但不透明,有没有办法将这两个调用组合在一起(可能使用第三层)?

unit MainWnd;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, ControlsEx;

type
{------------------------------------------------------------------------------}
  TfrmMain = class(TForm)
    PaintBox1: TPaintBox;
    procedure PaintBox1Paint(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;

implementation

{$R *.dfm}

{..............................................................................}
procedure copyToAlpha(const in_bitmap : TBitmap; const in_transparentColor : TColor;
        const in_transparency : integer);
var
  x : …
Run Code Online (Sandbox Code Playgroud)

delphi gdi canvas alphablending ownerdrawn

5
推荐指数
1
解决办法
7457
查看次数

使用TypeScript接口的Builder模式

我想做这样的事情:

interface IPoint {
    x : number;
    y : number;
    z? : number;
}
const diag : IPoint = IPoint.x(1)
                            .y(2)
                            .build();
Run Code Online (Sandbox Code Playgroud)

我意识到我可以自己实现这个,但是想知道是否有自动方法来做到这一点?给定TypeScript已经知道类型信息.

编辑:我正在请求这种语法,因为我现在可以这样做.

const diag : IPoint = {x: 1, y: 1};
Run Code Online (Sandbox Code Playgroud)

typescript

3
推荐指数
2
解决办法
5035
查看次数

为什么AlphaBlend总是返回false(在画布上绘图)?

我正在尝试使用windows alphablend API调用将两个画布混合在一起.首先,我在主画布(目标)上绘制一些东西,然后使用TBitmap实例化另一个画布,绘制到那个,然后将两者混合在一起(按照SO上的答案).

但是,我发现它总是返回false,起初我认为它与传递源和目标的错误句柄有关,但我无法弄明白.会是什么呢?

unit MainWnd;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, ControlsEx;

type
{------------------------------------------------------------------------------}
  TfrmMain = class(TForm)
    PaintBox1: TPaintBox;
    procedure PaintBox1Paint(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;

implementation

{$R *.dfm}

{..............................................................................}
procedure alphaBlendf(
        const in_target       : TCanvas;
        const in_transperancy : integer;
        const in_color        : TColor;
        const in_rect         : TRect;
        const in_width        : integer;
        const in_height       : integer);
var
  w          : integer;
  h          : integer; …
Run Code Online (Sandbox Code Playgroud)

delphi canvas alphablending ownerdrawn

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