c语言调用大漠插件例子

记录下c语言调用大漠的例子

	CoInitialize(NULL);
	HMODULE hmod=  LoadLibrary("C:\\DmReg.dll");//加载路径
	DWORD dlladdr=(DWORD)GetProcAddress(hmod,"SetDllPathA");
	DWORD dmdlladdr= (DWORD)(char *)"C:\\dm.dll";
	dm.CreateDispatch("dm.dmsoft");
	MessageBox(dm.Ver());
	string color;
	long start = clock();
	for(int i=0;i<1000;i++)
	{

		color = dm.GetColor(872, 1011);
	}
	long stop = clock();
	char outputString[10]={0};
	sprintf(outputString,"%d",stop-start);


	MessageBox(outputString);
	MessageBox((char*)color.c_str());

autohotkey调用dm的例子

iPath := A_ScriptDir . "\dm.dll"  
iResult := DllCall("DmReg.dll\SetDllPathW",  "Str", iPath, "Int", 0)
MsgBox % iResult 
dm :=  ComObjCreate("dm.dmsoft")

;PixelGetColor, color, 872, 1011
StartTime := A_TickCount		
loop,1000
{
ver := dm.GetColor(872, 1011)
}
ElapsedTime := A_TickCount - StartTime
MsgBox, %  ElapsedTime

通过执行上面两个例子,发下调用1000次坐标颜色获取函数,是16600左右

执行autohotkey本身的颜色获取命令

StartTime := A_TickCount	
loop,1000
{
PixelGetColor, color, 872, 1011
}
ElapsedTime := A_TickCount - StartTime
MsgBox, %  ElapsedTime

只用了15ms左右

 

执行系统自身的DLL

StartTime := A_TickCount	
loop,1000
{
	hdc := DllCall("GetDC", "uint", 0)
	color:=DllCall("GetPixel", "uint", hdc, "int", 872, "int", 1011, "uint*", ARGB)
	
}
ElapsedTime := A_TickCount - StartTime
MsgBox, %  ElapsedTime

 

和大漠差不多也是1600ms左右

我怀疑慢的原因是dll加载和释放占用时间,太多,有空再优化下

 

 

人已赞赏
AHKV1

【更新至6课】AHK GUI- AutoHotkey Gui 微课

2019-11-10 19:53:15

AHKV1

在屏幕上搜索图片并返回图片所在位置的坐标的AutoHotkey脚本源代码(类似大漠插件)

2019-11-11 15:30:22

4 条回复 A文章作者 M管理员
  1. 厉害

  2. 之前我用ahk调用大漠没成功!希望你能把调用的前前后后写一个通俗的教程。来个视频也可以!

    • 已添加

  3. 是win10系统吗?

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索