【发布时间】:2018-02-23 17:59:49
【问题描述】:
我有这个 C 代码:
/*
WARNING: The order of this table must also match the order of a table
located in AcquireResizeFilter() in "resize.c" otherwise the users filter
will not match the actual filter that is setup.
*/
typedef enum
{
UndefinedFilter,
PointFilter,
BoxFilter,
TriangleFilter,
HermiteFilter,
HannFilter,
HammingFilter,
BlackmanFilter,
GaussianFilter,
QuadraticFilter,
CubicFilter,
CatromFilter,
MitchellFilter,
JincFilter,
SincFilter,
SincFastFilter,
KaiserFilter,
WelchFilter,
ParzenFilter,
BohmanFilter,
BartlettFilter,
LagrangeFilter,
LanczosFilter,
LanczosSharpFilter,
Lanczos2Filter,
Lanczos2SharpFilter,
RobidouxFilter,
RobidouxSharpFilter,
CosineFilter,
SplineFilter,
LanczosRadiusFilter,
CubicSplineFilter,
SentinelFilter /* a count of all the filters, not a real filter */
} FilterType;
和
WandExport MagickBooleanType MagickResizeImage(MagickWand *wand,
const size_t columns,const size_t rows,const FilterType filter)
我像这样将它转换为 Pascal:
type
FilterType =(
UndefinedFilter,
PointFilter,
BoxFilter,
TriangleFilter,
HermiteFilter,
HannFilter,
HammingFilter,
BlackmanFilter,
GaussianFilter,
QuadraticFilter,
CubicFilter,
CatromFilter,
MitchellFilter,
JincFilter,
SincFilter,
SincFastFilter,
KaiserFilter,
WelchFilter,
ParzenFilter,
BohmanFilter,
BartlettFilter,
LagrangeFilter,
LanczosFilter,
LanczosSharpFilter,
Lanczos2Filter,
Lanczos2SharpFilter,
RobidouxFilter,
RobidouxSharpFilter,
CosineFilter,
SplineFilter,
LanczosRadiusFilter,
CubicSplineFilter,
SentinelFilter); // a count of all the filters, not a real filter
和
function MagickResizeImage(wand: PMagickWand; const columns: size_t; rows: size_t; const filter: FilterType): MagickBooleanType; cdecl; external MagickWandDLL;
当我拨打MagickResizeImage() 时,我收到了访问冲突:(
如果我将const filter: FilterType 更改为const filter: integer,它会起作用。
知道我做错了什么吗?
【问题讨论】:
-
访问冲突听起来像是调试器可以帮助解决的问题。
-
并不是真的访问冲突是在外部 dll 内部发生的 :( 我在 ASM 中很差 :(
-
不一定是骗子,但相关:stackoverflow.com/questions/41581763/…
标签: delphi pascal freepascal