📄 sample18_dll.c
字号:
#include <cvirte.h>
#include <windows.h>
int __stdcall DllMain (HINSTANCE hinstDLL, DWORD fdwReason,
LPVOID lpvReserved)
{
switch (fdwReason)
{
//动态库联接
case DLL_PROCESS_ATTACH:
//初始化CVI驱动引擎
if (InitCVIRTE (hinstDLL, 0, 0) == 0)
return 0;
break;
//断开动态库联接
case DLL_PROCESS_DETACH:
//关闭CVI驱动引擎
//释放DLL占用的内存
CloseCVIRTE ();
break;
}
return 1;
}
//动态库入口函数
int __stdcall DllEntryPoint (HINSTANCE hinstDLL, DWORD fdwReason,
LPVOID lpvReserved)
{
return DllMain (hinstDLL, fdwReason, lpvReserved);
}
//DrawTextInWindow函数用来实现特殊字效
void __stdcall __export DrawTextInWindow(HWND theWindow, short x, short y,
char *text, char *fontName,short pointSize, short bold,
short italic, short shadow, long color)
{
HDC theDC;
HFONT hfont, hfontOld;
theDC = GetDC (theWindow);
if (theDC) {
hfont = CreateFont((int)pointSize, 0, 0, 0, (bold ? FW_BOLD : FW_NORMAL),
(BYTE)italic, 0, 0, 0, 0, 0, 0, 0, (LPCSTR)fontName);
hfontOld = SelectObject(theDC, hfont);
SetBkMode (theDC, TRANSPARENT);
if (shadow != 0) {
SetTextColor(theDC, RGB(20, 20, 20));
TextOut (theDC, x+shadow, y+shadow, (LPCSTR)text, strlen(text));
}
SetTextColor(theDC, (COLORREF)color);
TextOut (theDC, x, y, (LPCSTR)text, strlen(text));
SelectObject(theDC, hfontOld);
DeleteObject(hfont);
ReleaseDC (theWindow, theDC);
}
}
//GetVKLock用来获得键盘上的CapsLock、NumLock、ScrollLock的锁定状态
void __stdcall __export GetVKLock(short *capLock,short *numLock,
short *scrollLock)
{
*capLock=GetKeyState(VK_CAPITAL);
*numLock=GetKeyState(VK_NUMLOCK);
*scrollLock=GetKeyState(VK_SCROLL);
return ;
}
//ReadRegString函数用来向注册表存储字符串型键值
void __stdcall __export ReadRegString (HKEY hRootKey,char* psubKey,
int index ,char* tagName,int *tagNameLen,
char* tagValue,int *tagValueLen)
{
HKEY hkey;
RegOpenKey(hRootKey,psubKey,&hkey);
if(index==-1)
RegQueryValue(hkey,NULL,tagValue,tagValueLen);
else
RegEnumValue(hkey,index,tagName,tagNameLen,0,0,tagValue,tagValueLen);
return;
}
//WriteRegString函数用来从注册表中读取字符串型键值
void __stdcall __export WriteRegString (HKEY hRootKey,char* psubKey,
int index,char* tagName, char* tagValue)
{
HKEY hkey;
int status,length;
status=RegOpenKey(hRootKey,psubKey,&hkey);
if(status)
RegCreateKey(hRootKey,psubKey,&hkey);
if(index==-1)
RegSetValue(hkey,NULL,REG_SZ,tagValue,length);
else
RegSetValueEx (hkey, tagName, 0, REG_SZ,
(CONST BYTE *)tagValue, strlen (tagValue)+1);
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -