我正在尝试在 Mono for Android 应用程序中在 Android 上呈现 PDF 文档。我正在使用用 C 编写的 MuPdf 库,并且在调用一个 C 函数时遇到问题。我得到什么:
System.EntryPointNotFoundException: fz_pixmap_samples
C函数:
unsigned char *fz_pixmap_samples(fz_context *ctx, fz_pixmap *pix)
{
if (!pix)
return NULL;
return pix->samples;
}
我的 C# 包装器:
public class APV
{
[DllImport("libmupdf.so", EntryPoint = "fz_pixmap_samples", CallingConvention = CallingConvention.Cdecl)]
private static extern IntPtr fz_pixmap_samples(IntPtr ctx, IntPtr pix);
public static IntPtr GetSamples(IntPtr ctx, IntPtr pix)
{
return fz_pixmap_samples(ctx, pix);
}
}
我调用 GetSamples 的方式:
APV.GetSamples(context, pix);
函数 fz_pixmap_samples(fz_context *ctx, fz_pixmap *pix) 应该返回指向位图数据的指针。我假设将 unsigned char * 映射到 IntPtr 不正确?有人可以帮忙吗?