亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > 易語言 > 正文

易語言API高級技巧總結

2024-07-21 02:55:14
字體:
來源:轉載
供稿:網友

首先聲明,本文的讀者該賣是:具有相當的易言語基礎的、能較熟練地把常用的的API從VB/C聲明轉換到易言語DLL命令的易言語喜歡者。

1,使用指針

易言語中出于安定、方便考慮,沒有直接提供指針,這正在進行一些高級 縱時不是很方便,固然有一些第三方支撐庫可以取出變量指針(比如我的eLib++ 注:該支撐庫系Delphi開發,本人已開放源代 ,你可以到易言語下載區瞧瞧)但是僅僅為了這個 縱就帶上一個支撐庫不太值得。實在用一個API,加上一些技術就可以欺騙Windows和易言語,讓它們報告你一個變量的指針。
這個API是lstrcpyn。用過C開發Windows下的步驟的朋友可能對這個API相比熟識,就是字符串拷貝。正在windows下取代C準則庫函數strncpy的。字符串拷貝怎樣能獲得變量指針呢?秘密就正在這個API的返回值:

瞧瞧MSDN:“If the function succeeds, the return value is a pointer to the buffer”

該函數把第二個參數指定的字符串雙制到第一個參數指定的字符串,第三個參數指定雙制的長度。假如雙制成功,返回第一個參數(緩沖區buffer)的地點。瞧到了嗎?它返回第一個參數的地點!!那么我們把需求取地點的變量給它的第一個參數,然后想要領讓它雙制成功,它不就返回了那個變量的地點了嗎?

界說一個DLL命令如下:

Dll命令:取文本指針

返回值類型:整數型

正在Dll庫中的命令名:lstrcpyn

參數:欲取其指針的文本 數據類型:文本型 <傳址>

參數:欲取其指針的文本 數據類型:文本型 <傳址>

參數:保存 數據類型:整數型 備注:0

這樣挪用:

文本1 = “abcdefg”

指針1 = 取文本指針 (文本1, 文本1, 0)

把文本1雙制到自己,雙制長度為0字節(也就是什么都不雙制),然后返回文本1的指針。就這么簡略。先報告Windows我要雙制一個文本到某個內存地點,但同時報告它我什么都不雙制,它實踐上幫你取出了這個文本的指針。

上面的例子是取文本的指針,其他類型的變量也一樣的,由于正在API內部(實在是正在內存中)什么類型的變量都體現為一塊內存區域,原理是一樣的。但是易言語是強制類型的言語,所以這次要騙騙易言語了,呵呵,再界說這個API的一個新版本,把它的參數界說成你想要的類型就可以了。

Dll命令:取整數指針

返回值類型:整數型

正在Dll庫中的命令名:lstrcpyn

參數:欲取其指針的整數 數據類型:整數型 <傳址> 備注:一定要傳址

參數:欲取其指針的整數 數據類型:整數型 <傳址> 備注:一定要傳址.重雙一次

參數:保存 數據類型:整數型 備注:0

2,非凡的結構用字節集代替

Window98及其后的 縱零碎提供了一個非常棒的API :GradientFill,利用這個API可以方便地畫出漸變的效果。

這個API倒不是很麻煩,參考MSDN我們很快就可以正在易言語中界說出這個DLL命令:(以漸變填充矩形為例)

Dll命令:GradientFill
返回值類型:邏輯型
Dll庫文件名:Msimg32.dll
正在Dll庫中的命令名:GradientFill
參數:hDC 數據類型:整數型
參數:pVertex 數據類型:TRIVERTEX
參數:dwNumVertex 數據類型:整數型
參數:pMesh 數據類型:GRADIENT_RECT
參數:dwNumMesh 數據類型:整數型
參數:dwMode 數據類型:整數型

其中TRIVERTEX 和GRADIENT_RECT時自界說的數據類型:

自界說數據類型:TRIVERTEX

成員:x 數據類型:整數型
成員:y 數據類型:整數型
成員:Red 數據類型:短整數型
成員:Green 數據類型:短整數型
成員:Blue 數據類型:短整數型
成員:Alpha 數據類型:短整數型

自界說數據類型:GRADIENT_RECT

成員:UpperLeft 數據類型:整數型
成員:LowerRight 數據類型:整數型

憑據MSDN的闡明,基礎沒有標題,但是假如你挪用這個函數,你不會成功的。為什么?我報告你緣由正在TRIVERTEX的界說上。你或許會說,這個沒有標題啊,MSDN上界說如下:

typedef struct _TRIVERTEX {LONG x;Long y;COLOR16 Red;COLOR16 Green;COLOR16 Blue;COLOR16 Alpha;}TRIVERTEX, *PTRIVERTEX;

C言語的LONG 和Long正在Windows 32位下是32位,對應于易言語“整數型”,COLOR16為十六位,對應于易言語的“短整數型”沒有標題??!那假如我再報告你,易言語中的自界說數據類型的成員均是四字節對齊的,你該理解了吧。是的,易言語中的自界說數據類型的成員均是四字節對齊的,假如不敷四字節,會主動對齊到四字節的。具體到上面的界說,Red,Green,Blue,Alpha固然被界說為“短整數型”但是正在易言語內部,它們均被擴充為“整數型”了。這就是題手法泉源。解決的要領就是用字節集代替自界說數據結構。易言語的字節集不存正在四字節對齊的標題。

Dll命令:GradientFill

返回值類型:邏輯型
Dll庫文件名:Msimg32.dll
正在Dll庫中的命令名:GradientFill
參數:hDC 數據類型:整數型
參數:pVertex 數據類型:字節集
…… ………………..

這樣界說就可以了。為了方便地生產所需求的字節集數據,我有界說了一個子步驟:

子步驟:TRIVERTEX到字節集

返回值類型:字節集

備注:由于內存對齊的緣由,務必把TRIVERTEX類型轉換為字節集才可以挪用API成功

參數:VertEX 數據類型:TRIVERTEX <數組>

局部變量:元素個數 數據類型:整數型
局部變量:變量 數據類型:整數型
局部變量:數據 數據類型:字節集

元素個數 = 取數組成員數 (VertEX)

計次循環首 (元素個數, 變量)

數據 = 數據 + 到字節集 (VertEX [變量].x)
數據 = 數據 + 到字節集 (VertEX [變量].y)
數據 = 數據 + 到字節集 (VertEX [變量].Red)
數據 = 數據 + 到字節集 (VertEX [變量].Green)
數據 = 數據 + 到字節集 (VertEX [變量].Blue)
數據 = 數據 + 到字節集 (VertEX [變量].Alpha)
計次循環尾 ()
返回 (數據)

具體的請瞧附帶的例程

其他具有類似特 (參數或結構中有非四字節的)的API都可以用上述的要領來變通解決。


注:相關教程知識閱讀請移步到易語言教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久亚洲精品一区| 亚洲人成网站999久久久综合| 日本高清不卡的在线| 久久亚洲精品视频| 久久人人爽人人爽人人片av高清| 91精品视频在线播放| 91精品视频免费观看| 国产一区香蕉久久| 久久久久免费精品国产| 亚洲四色影视在线观看| 国产精品欧美日韩一区二区| 91精品久久久久久久久青青| 亚洲一区二区国产| 日韩成人在线视频观看| 91国产高清在线| 国产日韩中文字幕在线| 美乳少妇欧美精品| 成人国产在线视频| 欧美黑人又粗大| 久久久久久久色| 欧美成人精品h版在线观看| 国产成人精品久久二区二区| 日韩hd视频在线观看| 欧美成人免费播放| 日韩高清中文字幕| 国产视频久久久久久久| 久久精品亚洲一区| 国产成人精品久久| 亚洲天堂免费观看| 日本最新高清不卡中文字幕| 国外成人性视频| 国产精品视频不卡| 国自产精品手机在线观看视频| 亚洲男人第一av网站| 亚洲欧美一区二区激情| 日韩激情第一页| 日韩二区三区在线| 欧美精品九九久久| www.日韩系列| 欧美在线视频a| 国产精品久久久久久影视| 国产精品日韩精品| 国内精品小视频在线观看| 欧美大胆a视频| 国内精品美女av在线播放| 欧美国产极速在线| 中文字幕国产精品| 欧美麻豆久久久久久中文| 中文字幕日韩欧美精品在线观看| 日韩中文娱乐网| 国产精品白丝av嫩草影院| 亚洲欧美日韩视频一区| 亚洲欧美日韩国产中文| 亚洲欧美色图片| 美女视频黄免费的亚洲男人天堂| 国产精品久久久久久久久粉嫩av| 日韩一级裸体免费视频| 久久久女女女女999久久| 午夜精品在线视频| 91黑丝在线观看| 中文欧美日本在线资源| 中文字幕av一区二区三区谷原希美| 国产精品一区久久久| 日韩欧美亚洲成人| 97在线精品国自产拍中文| 国模精品系列视频| 亚洲天堂免费视频| 一区二区亚洲欧洲国产日韩| 亚洲激情视频在线播放| 精品久久久久久久久中文字幕| 午夜精品久久久久久久99黑人| 亚洲国产欧美一区二区丝袜黑人| 欧美在线激情网| 国产精品久久久久久搜索| 亚洲精品自产拍| 日韩人在线观看| 亚洲级视频在线观看免费1级| 国内精品久久久久久| 国产成人在线一区| 欧美第一淫aaasss性| 日韩成人在线播放| 成人黄色在线播放| 少妇高潮久久久久久潘金莲| 日本一本a高清免费不卡| 91久久精品国产91性色| 亚洲精品影视在线观看| 精品综合久久久久久97| 7777免费精品视频| 亚洲老司机av| 久久精品国产亚洲精品| 91亚洲国产精品| 国产精品女人久久久久久| 国产成人精品久久| 久久精品亚洲热| 日本一欧美一欧美一亚洲视频| 久久精品免费播放| 日韩精品极品在线观看| 国内精品久久久久久中文字幕| 欧美激情在线播放| 亚洲美女精品成人在线视频| 亚洲精品美女久久久久| 国产91精品高潮白浆喷水| 少妇激情综合网| 国产精品尤物福利片在线观看| 插插插亚洲综合网| 国产色综合天天综合网| 日日狠狠久久偷偷四色综合免费| 日韩欧美在线视频观看| 全亚洲最色的网站在线观看| 精品视频久久久| 欧美激情一区二区三区高清视频| 国产午夜精品全部视频在线播放| 日韩最新中文字幕电影免费看| 欧美国产亚洲精品久久久8v| 国产精品久久久av| 日韩成人中文字幕| xxxxx91麻豆| 庆余年2免费日韩剧观看大牛| 久久久久久午夜| 久久精品国产亚洲精品2020| 韩国视频理论视频久久| 91成人在线观看国产| 中国china体内裑精亚洲片| 91久久精品美女| 国产成人免费av| 国产一区二区三区18| 欧洲美女免费图片一区| 中国china体内裑精亚洲片| 岛国av午夜精品| 亚洲国产精品久久久久秋霞蜜臀| 国产成人精品一区二区| 中日韩午夜理伦电影免费| 欧美精品手机在线| 欧美多人乱p欧美4p久久| 综合国产在线观看| 成人网在线观看| 日韩视频欧美视频| 日韩电影中文字幕一区| 欧美黑人一级爽快片淫片高清| 成人精品一区二区三区电影黑人| 在线视频欧美性高潮| 欧美与黑人午夜性猛交久久久| 日韩精品中文字| 91九色综合久久| 日韩欧美第一页| 国产精品视频区| 国产综合色香蕉精品| 日韩成人在线观看| 亚洲男人天堂2024| 91精品国产91久久久久久吃药| 日韩资源在线观看| 久久久久久国产| 欧美激情精品久久久久久黑人| 亚洲在线视频福利| 精品精品国产国产自在线| 亚洲电影免费观看高清完整版在线观看| 欧美www在线| 国内外成人免费激情在线视频网站| 97精品国产aⅴ7777| 欧美在线亚洲一区| 精品国内亚洲在观看18黄| 国产精品678| 91精品国产综合久久香蕉最新版| 在线观看欧美www|