我正在尝试编译一组目标.然而它似乎只做第一个.下面是我的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)
我的问题是,是否可以对变量进行扩展,例如(%:%)模式?
我正在尝试使用Delphi 7调试大型应用程序中的内存使用情况.我能够安装fastmm debug full dll并使用它来解决一些泄漏问题.
我还安装了内存使用跟踪器,允许我查看分配了哪些块以及它们的大小.
我的问题是,有没有办法找出块的分配位置?我知道这是可能的,因为如果没有释放内存,则会打印堆栈跟踪.有没有办法在fastmm'戳'让它打印给定分配的堆栈跟踪?
附带问题:如果分配的起始地址已知,有没有办法找出对象是哪个类?(假设分配是针对一个对象的.
我有一个给定文件夹的完整路径名称,例如
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?我知道我可以通过拆分字符串并删除最后一个令牌来编写一个,但我宁愿它是一个内置/库函数,所以如果有例如转义反斜杠,我不会遇到麻烦.
我想结合两个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) 我想做这样的事情:
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) 我正在尝试使用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 ×4
canvas ×2
ownerdrawn ×2
delphi-2007 ×1
fastmm ×1
gdi ×1
gnu-make ×1
makefile ×1
path ×1
typescript ×1