十二月 2009

一个开源的矢量绘图工具Inkscape

一个开源的矢量绘图工具Inkscape

在Delphi中创建类似于Printf这样可变参数的函数

Delphi本身是不直接支持写Printf这样的变参函数,Format这样的函数类似于Printf,但是还是要多写两个括号,

我觉得太麻烦,其实我们可以间接的实现这样的函数,懒得解释,贴了段程序

program TestVar;

{$APPTYPE CONSOLE}

uses
  SysUtils, Windows;

type
  VA_FN = function(const par1{, ...}: PAnsiChar): Boolean; cdecl varargs;

vsnprintf和wvsprintf的区别

vsnprintf和wvsprintf的唯一区别就是wvsprintf函数不能处理浮点格式化字符串。

 

倒霉的是Delphi自带的Windows.pas里面只提供了wvsprintf的定义。要想使用vsnprintf,我们需要引用MSVCRT.dll中的

vsnprintf函数

 

function _vsnprintf(buffer: PAnsiChar; count: size_t; format: PAnsiChar): Integer; cdecl;varargs; external 'MSVCRT.DLL' name '_vsnprintf';