用FREEBASIC写标准DLL

用FREEBASIC写标准DLL
用BASIC写标准DLL已经不是天方夜谭了!不多说了,看:

新建一个BAS文件,建立一个函数:

[code]function AddNumbers ( byval operand1 as integer, byval operand2 as integer ) as integer export

 function = operand1 + operand2
 
end function[/code]

可以注意到,和一般建立的函数不一样的地方,函数的类型后面带了一个export,它的意思就是告诉编译器输出成标准DLL。编译的时候要记得带上-dll这个参数:
fbc -dll 文件名.bas

用FREEBASIC编译后,我们可以得到一个标准DLL,如何调用呢?
我们需要先建立一个BI文件(FREEBASIC的头文件)内容为:
[code]declare function AddNumbers lib "mydll" alias "AddNumbers" ( byval operand1 as integer, byval operand2 as integer ) as integer[/code]

是不是很象VB的模块中的标准DLL调用呢?
然后程序中调用这个BI头文件就可以用函数啦~~这样就解决了VB不能直接写标准DLL的问题了~~

freebasic中文论坛

www.freebasic.cn 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
FreeBASIC 是一种免费的开源 BASIC 编程语言,它提供了许多图形编程的支持。CGpGraphics 是 GDI+ 中的一个图形绘制类,可以用它来绘制和处理图像。如果你想要在 FreeBASIC 中使用 CGpGraphics 来压缩图片,可以按照以下步骤进行: 1. 首先,你需要安装 .NET Framework 的最新版本,并将 GDI+ 库引入到 FreeBASIC 项目中。 2. 接下来,你需要创建一个 GpBitmap 对象,它可以从文件或内存中加载图像。例如,你可以使用 GpImage.FromFile 方法从文件中加载图像。 3. 然后,你需要创建一个新的 GpBitmap 对象作为输出缓冲区,并使用 GpGraphics 对象的 DrawImage 方法将输入图像绘制到输出缓冲区中。 4. 最后,你可以使用 GpEncoderParameters 对象来设置压缩参数,并使用 GpImage.Save 方法将输出缓冲区中的图像保存到文件或内存中。 下面是一个使用 CGpGraphics 压缩图片的示例代码: ``` #include once "vbcompat.bi" #include once "gdiplus.bi" ScreenRes 800, 600, 32 Dim Compressor As GpImageCodecInfo Ptr Dim Params As GpEncoderParameters Dim Image As GpImage Dim Bitmap As GpBitmap Dim Graphics As GpGraphics Dim Status As GpStatus ' 初始化 GDI+ 库 Status = GdiplusStartup(0, 0, 0) ' 加载图像 Image = GpImage.FromFile("input.jpg") ' 创建输出缓冲区 Bitmap = GpBitmap.Create(Image.GetWidth(), Image.GetHeight(), PixelFormat32bppARGB) Graphics = GpGraphics.CreateFromImage(Bitmap) ' 绘制图像 Graphics.DrawImage(Image, 0, 0) ' 设置压缩参数 Compressor = GpImageCodecInfo.FindEncoderByMimeType("image/jpeg") Params.Count = 1 Params.Parameter(0).Guid = EncoderQuality Params.Parameter(0).Type = EncoderParameterValueTypeLong Params.Parameter(0).NumberOfValues = 1 Params.Parameter(0).Value = VarPtr(90) ' 保存图像 Status = Bitmap.Save("output.jpg", Compressor.Clsid, Params) ' 清理资源 Graphics.Dispose() Bitmap.Dispose() Image.Dispose() ' 关闭 GDI+ 库 GdiplusShutdown() ``` 在上面的示例代码中,我们首先使用 GdiplusStartup 函数初始化 GDI+ 库,然后使用 GpImage.FromFile 方法加载输入图像。接着,我们创建一个 GpBitmap 对象作为输出缓冲区,并使用 GpGraphics 对象的 DrawImage 方法将输入图像绘制到输出缓冲区中。接下来,我们使用 GpImageCodecInfo 和 GpEncoderParameters 对象来设置压缩参数,并使用 GpImage.Save 方法将输出缓冲区中的图像保存到文件中。最后,我们使用 GdiplusShutdown 函数关闭 GDI+ 库,并释放所有资源。 需要注意的是,上面的示例代码仅供参考,具体实现方式可能因平台和版本而异。在实际使用中,你需要根据自己的需求和环境进行相应的修改和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值