热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

易语言如何实现提取ICO图标并支持多种图像格式转换功能

这篇文章主要介绍了易语言如何实现提取ICO图标并支持多种图像格式转换功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文

这篇文章主要介绍了易语言如何实现提取ICO图标并支持多种图像格式转换功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

DLL命令表

.版本 2
.DLL命令 拷贝内存_BITMAPINFOHEADER, 整数型, "kernel32", "RtlMoveMemory", , RtlMoveMemory
  .参数 目标数据地址, 字节集, 传址, lpvDest
  .参数 源数据, BITMAPINFOHEADER, 传址, lpvSource
  .参数 尺寸, 整数型, , 40cbCopy
.DLL命令 拷贝内存_ICONFILEHEADER, 整数型, "kernel32", "RtlMoveMemory", , RtlMoveMemory
  .参数 目标数据地址, 字节集, 传址, lpvDest
  .参数 源数据, ICONFILEHEADER, , lpvSource
  .参数 尺寸, 整数型, , 22cbCopy

自定义数据类型表

.版本 2
.数据类型 ICONFILEHEADER, , 文件头22
  .成员 idReserved, 短整数型, , , 为0
  .成员 idType, 短整数型, , , 为1图标,2为鼠标
  .成员 idCount, 短整数型, , , 文件中图标个数,为1
  .成员 bWidth, 字节型, , , 宽,为16或32
  .成员 bHeight, 字节型, , , 高,为16或32
  .成员 bColorCount, 字节型, , , 调色盘颜色数量:16或255 或0
  .成员 bReserved, 字节型, , , 为0
  .成员 wPlanes, 短整数型, , , idType为2,鼠标热点左边
  .成员 wBitCount, 短整数型, , , 每个像素占的位数 .idType为2,鼠标热点顶边
  .成员 dwBytesInRes, 整数型, , , 图标文件后四项总字节数
  .成员 dwImageOffset, 整数型, , , 图标文件头长度,为22
.数据类型 BITMAPINFOHEADER, , 信息头40
  .成员 biSize, 整数型, , , 信息头的长度,为40
  .成员 biWidth, 整数型, , , 宽
  .成员 biHeight, 整数型, , , 扫描两遍,值为实实际高度的2 倍
  .成员 iPlanes, 短整数型, , , 为1
  .成员 biBitCount, 短整数型, , , 每个像素占的位数
  .成员 biCompression, 整数型, , , 为0
  .成员 biSizeImage, 整数型, , , 图标文件后三项总字节数
  .成员 biXPelsPerMeter, 整数型, , , 为0
  .成员 biYPelsPerMeter, 整数型, , , 为0
  .成员 biClrUsed, 整数型, , , 为0
  .成员 biClrImportant, 整数型, , , 为0
.数据类型 RGBDATA, , 图像信息中每一个像素包含的RGB
  .成员 B, 字节型
  .成员 R, 字节型
  .成员 G, 字节型
.数据类型 图像大小
  .成员 宽度, 整数型
  .成员 高度, 整数型

提取ICO图标

.版本 2
.支持库 edroptarget
.支持库 iext2
.支持库 eAPI
.支持库 iext5
.支持库 shell
.支持库 eImgConverter
.支持库 BmpOperate
.程序集 窗口程序集1
.程序集变量 程序集_欲删除的图标, 文本型
.程序集变量 程序集_文件路径, 文本型
.程序集变量 程序集_图像大小, 图像大小
.子程序 __启动窗口_创建完毕
拖放对象1.注册拖放控件 (_启动窗口.取窗口句柄 ())
检测图像欲转换大小 ()
.子程序 _拖放对象1_得到文件
.参数 接收到的文件路径, 文本型
编辑框1.内容 = 接收到的文件路径
.子程序 _按钮_提取图标_被单击
.局部变量 i, 整数型
.局部变量 图标资源, 字节集
.局部变量 后缀名, 文本型
.局部变量 是否空图标, 字节集
.局部变量 画板的底图, 字节集
.如果真 (寻找文本 (程序集_文件路径, “.”, , 真) = -1)
  信息框 (“文件路径不正确,请尝试更换文件再试!”, #错误图标, )
  返回 ()
.如果真结束
.计次循环首 (取文件内图标数 (程序集_文件路径), i)
  提取资源文件图标 (程序集_文件路径, 0, 取运行目录 () + “\” + 到文本 (i) + “.ico”, i)
.计次循环尾 ()
.如果真 (取文件内图标数 (程序集_文件路径) ≠ 0)
  气球提示框1.弹出提示框 (取鼠标水平位置 (), 取鼠标垂直位置 (), “图标提取成功。”, -1, )
.如果真结束
程序集_欲删除的图标 = 编辑框1.内容
' -------上面代码提取平常的 EXE、DLL、ICL、ICO。图标 下面的是为了将图像转换成为BMP后在转换ICO图标----------
后缀名 = 到小写 (取文本右边 (程序集_文件路径, 4))
.如果真 (后缀名 ≠ “.exe” 且 后缀名 ≠ “.dll” 且 后缀名 ≠ “.icl” 且 后缀名 ≠ “.ico”)
  画板1.底图 = 读入文件 (编辑框1.内容)
  画板的底图 = 画板1.底图
  画板1.宽度 = 程序集_图像大小.宽度
  画板1.高度 = 程序集_图像大小.高度
  画板1.底图方式 = #缩放图片
  写到文件 (取特定目录 (11) + “\” + 取文本右边 (后缀名, 1), 画板1.取图片 (程序集_图像大小.宽度, 程序集_图像大小.高度))
  转换到BMP (取特定目录 (11) + “\” + 取文本右边 (后缀名, 1), 取特定目录 (11) + “\” + 取文本右边 (后缀名, 1) + “.bmp”)
  程序集_文件路径 = 取特定目录 (11) + “\” + 取文本右边 (后缀名, 1) + “.bmp”
  .如果真 (取文本右边 (程序集_文件路径, 4) = “.bmp”)
    BMP转ICO (读入文件 (程序集_文件路径), 图标资源)
    写到文件 (取运行目录 () + “\1.ico”, 图标资源)
    是否空图标 = 读入文件 (取运行目录 () + “\1.ico”)
    .如果真 (是否空图标 = { }) ' 如果方法一失败 自动转换方法二转ico
      BMP转ICO2 (读入文件 (程序集_文件路径), 图标资源)
      写到文件 (取运行目录 () + “\1.ico”, 图标资源)
    .如果真结束
  .如果真结束
  .如果 (画板的底图 = { })
    气球提示框1.弹出提示框 (取鼠标水平位置 (), 取鼠标垂直位置 (), “图标提取失败。”, -1, )
  .否则
    气球提示框1.弹出提示框 (取鼠标水平位置 (), 取鼠标垂直位置 (), “图标提取成功。”, -1, )
  .如果结束
.如果真结束
画板1.底图 = { }
.子程序 _编辑框1_内容被改变
.局部变量 图标数, 整数型
程序集_文件路径 = 编辑框1.内容
.如果真 (寻找文本 (程序集_文件路径, “.lnk”, , 真) ≠ -1)
  编辑框1.内容 = 查询快捷方式 (程序集_文件路径)
.如果真结束
图标数 = 取文件内图标数 (程序集_文件路径)
标题 = “发现图标数为:” + 到文本 (图标数) + “个”
编辑框1.被选择字符数 = 取文本长度 (程序集_文件路径)
.如果真 (图标数 = 0)
  气球提示框1.弹出提示框 (取鼠标水平位置 (), 取鼠标垂直位置 (), “文件内没有发现可用图标,如果放入的是图像将自动转换成为图标文件” + #换行符 + “如果不是图像将会转换失败!”, -1, 真)
.如果真结束
.子程序 _按钮_删除图标_被单击
.局部变量 i, 整数型
.如果真 (信息框 (“删除的仅是刚才提取的图标而且必须是非图像提取的图标”, #是否钮, ) = #是钮)
  i = 取文件内图标数 (程序集_欲删除的图标) ' 提取文件图标按钮被单击后 程序集才有会有数据
  .如果真 (i = 0)
    返回 ()
  .如果真结束
  .计次循环首 (取文件内图标数 (程序集_欲删除的图标), i)
    删除文件 (取运行目录 () + “\” + 到文本 (i) + “.ico”)
  .计次循环尾 ()
  程序集_欲删除的图标 = “”
.如果真结束
.子程序 _按钮_选择文件_被单击
通用对话框1.初始目录 = 取特定目录 (3)
通用对话框1.不改变目录 = 真
通用对话框1.过滤器 = “可执行文件(*.exe)|*.exe|动态链接库(*.dll)|*.dll|图标资源库(*.icl)|*.icl|图像文件(*.bmp;*.jpg;*.jpeg;*.gif;*.ico)|*.bmp;*.jpg;*.jpeg;*.gif;*.ico|所有文件(*.*)|*.*”
.如果真 (通用对话框1.打开 () = 真)
  编辑框1.内容 = 通用对话框1.文件名
.如果真结束
.子程序 BMP转ICO, 逻辑型, 公开, 用位图转换,非本人所写
.参数 被转BMP数据, 字节集
.参数 获得ICO数据, 字节集, 参考
.参数 透明色, 整数型, 可空, 默认为白色
.参数 CUR光标, 逻辑型, 可空, 真为CUR光标,假为图标
.参数 指针左热点, 字节型, 可空, CUR光标为真时有效,以0开始
.参数 指针顶热点, 字节型, 可空, CUR光标为真时有效,以0开始
.局部变量 位图, 位图
.局部变量 IFH, ICONFILEHEADER
.局部变量 BIH, BITMAPINFOHEADER
.局部变量 RGBD, 字节集
.局部变量 FBY, 字节集
.局部变量 I
.局部变量 J
.局部变量 K1
.局部变量 K2
.局部变量 BY
.局部变量 BYY
.局部变量 BY2
.局部变量 字节集, 字节集
.局部变量 宽度, 整数型
.局部变量 高度, 整数型
.局部变量 A, 整数型
.局部变量 TMZ, 整数型
.局部变量 DD, 整数型
.局部变量 补码, 整数型
.如果真 (位图.载入数据 (被转BMP数据) = 假)
  返回 (假)
.如果真结束
宽度 = 位图.取宽度 ()
.如果真 (宽度 > 255)
  返回 (假)
.如果真结束
高度 = 位图.取高度 ()
.如果真 (高度 > 255)
  返回 (假)
.如果真结束
.如果 (宽度 % 32 ≠ 0)
  TMZ = 宽度 ÷ 32 + 1
.否则
  TMZ = 宽度 ÷ 32
.如果结束
TMZ = TMZ × 高度
补码 = 宽度 % 4
IFH.idReserved = 0
IFH.idType = 选择 (CUR光标, 2, 1)
IFH.idCount = 1
IFH.bHeight = 高度
IFH.bWidth = 宽度
IFH.bColorCount = 0
IFH.bReserved = 0
IFH.wPlanes = 选择 (CUR光标, 指针左热点, 1)
IFH.wBitCount = 选择 (CUR光标, 指针顶热点, 24)
IFH.dwBytesInRes = 宽度 × 高度 × 3 + TMZ × 4 + 补码 × 高度 + 40 ' 3240
IFH.dwImageOffset = 22 ' 取文本长度 (ifh)
BIH.biSize = 40 ' 取文本长度 (bih)
BIH.biWidth = 宽度
BIH.biHeight = 高度 × 2 ' !!!
BIH.iPlanes = 1
BIH.biBitCount = 24
BIH.biCompression = 0
BIH.biSizeImage = 宽度 × 高度 × 3 + 补码 × 高度 ' 3200
BIH.biXPelsPerMeter = 0
BIH.biYPelsPerMeter = 0
BIH.biClrUsed = 0
BIH.biClrImportant = 0
.如果 (是否为空 (透明色))
  BY = 16777215
.否则
  BY = 透明色
.如果结束
RGBD = 取空白字节集 (BIH.biSizeImage)
FBY = 取空白字节集 (TMZ × 4)
K1 = 0
K2 = 1
A = 128
.计次循环首 (高度, I) ' 从左下角逐行扫描
  .计次循环首 (宽度, J)
    BYY = 位图.取某点颜色 (J - 1, 高度 - I) ' 获得图像上某一点的颜色Long值
    .如果 (BYY ≠ BY) ' 如果该点为透明色
      RGBD [K1 + 3] = 位与 (BYY, 255) ' 取整 (BYY ÷ 65536)
      RGBD [K1 + 2] = 位与 (右移 (BYY, 8), 255)
      RGBD [K1 + 1] = 右移 (BYY, 16)
    .否则
      BY2 = BY2 + A
    .如果结束
    K1 = K1 + 3
    A = A ÷ 2
    .如果真 (A = 0)
      FBY [K2] = BY2
      K2 = K2 + 1
      A = 128
      BY2 = 0
    .如果真结束
  .计次循环尾 ()
  .如果真 (A ≠ 128)
    FBY [K2] = BY2
    K2 = K2 + 1
    A = 128
    BY2 = 0
  .如果真结束
  DD = K2 % 4
  .如果真 (DD ≠ 1)
    K2 = K2 + 5 - DD
  .如果真结束
  K1 = K1 + 补码
.计次循环尾 ()
获得ICO数据 = 取空白字节集 (22)
拷贝内存_ICONFILEHEADER (获得ICO数据, IFH, 22)
字节集 = 取空白字节集 (40)
拷贝内存_BITMAPINFOHEADER (字节集, BIH, 40)
获得ICO数据 = 获得ICO数据 + 字节集 + RGBD + FBY
返回 (真)
.子程序 BMP转ICO2, 逻辑型, 公开, 用数据转换,非本人所写
.参数 被转BMP数据, 字节集
.参数 获得ICO数据, 字节集, 参考
.参数 透明色, 整数型, 可空, 默认为白色
.参数 CUR光标, 逻辑型, 可空, 真为CUR光标,假为图标
.参数 指针左热点, 字节型, 可空, CUR光标为真时有效,以0开始
.参数 指针顶热点, 字节型, 可空, CUR光标为真时有效,以0开始
.局部变量 BMP数据2, 字节集
.局部变量 IFH, ICONFILEHEADER
.局部变量 BIH, BITMAPINFOHEADER
.局部变量 RGBD, 字节集
.局部变量 FBY, 字节集
.局部变量 I
.局部变量 J
.局部变量 K1
.局部变量 K2
.局部变量 BY, RGBDATA
.局部变量 BYY, RGBDATA
.局部变量 BY2
.局部变量 字节集, 字节集
.局部变量 宽度, 整数型
.局部变量 高度, 整数型
.局部变量 长度, 整数型
.局部变量 A, 整数型
.局部变量 TMZ, 整数型
.局部变量 DD, 整数型
.局部变量 补码, 整数型
.如果真 (取字节集长度 (被转BMP数据) < 54 或 被转BMP数据 [1] ≠ 66 或 被转BMP数据 [2] ≠ 77) ' BM6
  返回 (假)
.如果真结束
宽度 = 取字节集数据 (被转BMP数据, #整数型, 19)
高度 = 取字节集数据 (被转BMP数据, #整数型, 23)
长度 = 取字节集数据 (被转BMP数据, #整数型, 35)
.如果真 (宽度 > 255)
  返回 (假)
.如果真结束
.如果真 (高度 > 255)
  返回 (假)
.如果真结束
BMP数据2 = 取字节集中间 (被转BMP数据, 55, 长度)
.如果 (宽度 % 32 ≠ 0)
  TMZ = 宽度 ÷ 32 + 1
.否则
  TMZ = 宽度 ÷ 32
.如果结束
TMZ = TMZ × 高度
补码 = 宽度 % 4
IFH.idReserved = 0
IFH.idType = 选择 (CUR光标, 2, 1)
IFH.idCount = 1
IFH.bHeight = 高度
IFH.bWidth = 宽度
IFH.bColorCount = 0
IFH.bReserved = 0
IFH.wPlanes = 选择 (CUR光标, 指针左热点, 1)
IFH.wBitCount = 选择 (CUR光标, 指针顶热点, 24)
IFH.dwBytesInRes = 宽度 × 高度 × 3 + TMZ × 4 + 补码 × 高度 + 40 ' 3240
IFH.dwImageOffset = 22 ' 取文本长度 (ifh)
BIH.biSize = 40 ' 取文本长度 (bih)
BIH.biWidth = 宽度
BIH.biHeight = 高度 × 2 ' !!!
BIH.iPlanes = 1
BIH.biBitCount = 24
BIH.biCompression = 0
BIH.biSizeImage = 宽度 × 高度 × 3 + 补码 × 高度 ' 3200
BIH.biXPelsPerMeter = 0
BIH.biYPelsPerMeter = 0
BIH.biClrUsed = 0
BIH.biClrImportant = 0
.如果真 (取字节集长度 (BMP数据2) < BIH.biSizeImage)
  返回 (假)
.如果真结束
.如果 (是否为空 (透明色))
  BY.R = 255
  BY.G = 255
  BY.B = 255
.否则
  BY.R = 位与 (透明色, 255) ' 取整 (BYY ÷ 65536)
  BY.G = 位与 (右移 (透明色, 8), 255)
  BY.B = 右移 (透明色, 16)
.如果结束
RGBD = 取空白字节集 (BIH.biSizeImage)
FBY = 取空白字节集 (TMZ × 4)
K1 = 0
K2 = 1
A = 128
.计次循环首 (高度, I) ' 从左下角逐行扫描
  .计次循环首 (宽度, J)
    BYY.R = BMP数据2 [K1 + 3]
    BYY.G = BMP数据2 [K1 + 2]
    BYY.B = BMP数据2 [K1 + 1]
    .如果 (BYY.R ≠ BY.R 或 BYY.G ≠ BY.G 或 BYY.B ≠ BY.B) ' 如果该点为透明色
      RGBD [K1 + 3] = BYY.R
      RGBD [K1 + 2] = BYY.G
      RGBD [K1 + 1] = BYY.B
    .否则
      BY2 = BY2 + A
    .如果结束
    K1 = K1 + 3
    A = A ÷ 2
    .如果真 (A = 0)
      FBY [K2] = BY2
      K2 = K2 + 1
      A = 128
      BY2 = 0
    .如果真结束
  .计次循环尾 ()
  .如果真 (A ≠ 128)
    FBY [K2] = BY2
    K2 = K2 + 1
    A = 128
    BY2 = 0
  .如果真结束
  DD = K2 % 4
  .如果真 (DD ≠ 1)
    K2 = K2 + 5 - DD
  .如果真结束
  K1 = K1 + 补码
.计次循环尾 ()
获得ICO数据 = 取空白字节集 (22)
拷贝内存_ICONFILEHEADER (获得ICO数据, IFH, 22)
字节集 = 取空白字节集 (40)
拷贝内存_BITMAPINFOHEADER (字节集, BIH, 40)
获得ICO数据 = 获得ICO数据 + 字节集 + RGBD + FBY
返回 (真)
.子程序 检测图像欲转换大小
.如果真 (单选框_16.选中 = 真)
  程序集_图像大小.宽度 = 16
  程序集_图像大小.高度 = 16
  返回 ()
.如果真结束
.如果真 (单选框_32.选中 = 真)
  程序集_图像大小.宽度 = 32
  程序集_图像大小.高度 = 32
  返回 ()
.如果真结束
.如果真 (单选框_64.选中 = 真)
  程序集_图像大小.宽度 = 64
  程序集_图像大小.高度 = 64
  返回 ()
.如果真结束
.如果真 (单选框_128.选中 = 真)
  程序集_图像大小.宽度 = 128
  程序集_图像大小.高度 = 128
  返回 ()
.如果真结束
.子程序 _单选框_16_被单击
检测图像欲转换大小 ()
.子程序 _单选框_32_被单击
检测图像欲转换大小 ()
.子程序 _单选框_64_被单击
检测图像欲转换大小 ()
.子程序 _单选框_128_被单击
检测图像欲转换大小 ()
.子程序 __启动窗口_将被销毁
删除文件 (取特定目录 (11) + “\” + 取文本右边 (到小写 (取文本右边 (程序集_文件路径, 4)), 1))
删除文件 (取特定目录 (11) + “\” + 取文本右边 (到小写 (取文本右边 (程序集_文件路径, 4)), 1) + “.bmp”)

运行结果:

易语言如何实现提取ICO图标并支持多种图像格式转换功能

感谢你能够认真阅读完这篇文章,希望小编分享的“易语言如何实现提取ICO图标并支持多种图像格式转换功能”这篇文章对大家有帮助,同时也希望大家多多支持编程笔记,关注编程笔记行业资讯频道,更多相关知识等着你来学习!


推荐阅读
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • 合并列值-合并为一列问题需求:createtabletab(Aint,Bint,Cint)inserttabselect1,2,3unionallsel ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
author-avatar
M-G思维_891
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有