用C語言這樣寫:
以下局部代碼將 c:\test.jpg 繪制在屏幕左上角:
IMAGE img;
getimage(&img, "c:\\test.jpg");
putimage(0, 0, &img);以下局部代碼將屏幕 (0,0) 起始的長寬各 100 像素的圖像拷貝至 (200,200) 位置:
IMAGE img;
getimage(&img, 0, 0, 100, 100);
putimage(200, 200, &img);
『貳』 C語言如何寫資源文件
你所說的資源文件可以理解為2種文件。
1. 程序設計:這里是說的方案(可行性)設回計文檔,概要答設計文檔,詳細設計文檔。理論上來說所有的程序都必須先寫這幾個文檔,然後再開始寫代碼,但是對於國內大部分的程序員來說這個基本是無法全部執行到位的。一般都是先寫代碼再做設計文檔。
2. 程序所需要的resource:這里的意思是說在程序中會用到的字串,數據,顯示的一些內容都需要在程序代碼開發前准備好,將這些內容寫在一個固定的或者說約定好的地方,以後所有的相關內容都應該添加到這里。這樣才能使整個程序結構看起來比較有條理。
『叄』 windows環境,多線程情況下,C語言向文件寫入數據。
下面的程序,編譯之後,你可以運行很多個實例,目前我將文件寫在了D:\1.txt,每個程序寫1000行數據,這些值你可以自己更改(比如 寫在C:,每個程序寫10000行等),等程序都寫完後,你可以去文件中查看寫文件的結果。補充一下,我是在VC6.0環境中寫的,所以windows.h,如果你不是在這個環境中的話,可能需要修改一些定義,比如DWORD等。其他的API都是windows平台提供的API;
#include <stdio.h>
#include "windows.h"
int main()
{
//獲取進程ID,因為你希望是多個進程運行同時寫一個文件,所以,我們列印出進程ID
DWORD dwProcessID = GetCurrentProcessId();
//初始化我們要寫入文件中的內容,及該內容長度;
char szContent[100] = {0};
sprintf(szContent,"process[%u] write file\r\n",dwProcessID);
DWORD dwContentLen = strlen(szContent);
//創建互斥量,這樣可以進行進程間的互斥,當然用這個也可以做線程間的互斥
HANDLE hMutex = CreateMutex(NULL,FALSE,"MyFileMutex");
if (NULL == hMutex)
{
printf("[%u]Create/Open Mutex error!\r\n",dwProcessID);
return 1;
}
//創建或打開文件
HANDLE hFile = CreateFile("D:\\1.txt",
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_WRITE | FILE_SHARE_READ,NULL,
OPEN_ALWAYS,
FILE_ATTRIBUTE_ARCHIVE,
NULL);
if (INVALID_HANDLE_VALUE == hFile)
{
printf("[%u]Creat/Open file error!\r\n",dwProcessID);
return 1;
}
//循環寫入文件
for(int i = 0; i < 1000 ; i++)
{
//等待臨界資源,即鎖定文件
WaitForSingleObject(hMutex,INFINITE);
printf("Process[%u] Get the signal\r\n",dwProcessID);
DWORD len = 0;
//因為是共享寫文件,即多個程序寫一個文件,所以一定要將文件指針偏移到尾部
SetFilePointer(hFile,0,NULL,FILE_END);
//寫入文件
BOOL rnt = WriteFile(hFile,szContent,dwContentLen,&len,NULL);
if (rnt == FALSE)
{
printf("Process[%u] Fail to write file\r\n",dwProcessID);
}
//釋放互斥量,解除鎖定
ReleaseMutex(hMutex);
//加個Sleep便於我們中間觀察結果
Sleep(30);
}
CloseHandle(hMutex);
CloseHandle(hFile);
return 0;
}
應你要求,我把AIP中的宏定義解釋如下:
HANDLE hFile = CreateFile("D:\\1.txt",
GENERIC_READ | GENERIC_WRITE,//表示程序對該文件有讀和寫的許可權
FILE_SHARE_WRITE | FILE_SHARE_READ,//表示可以多個程序共享讀和寫的許可權
NULL,
OPEN_ALWAYS,//表示打開該文件,如果該文件不存在,則創建該文件
FILE_ATTRIBUTE_ARCHIVE,//文件的屬性為存檔
NULL);
WaitForSingleObject(hMutex,INFINITE);
//INFINITE表示永遠等待,直到hMutex有信號為止
SetFilePointer(hFile,0,NULL,FILE_END);
//FILE_END表示從文件尾部開始偏移;實際此舉就是將文件指針偏移到文件尾部;
『肆』 易語言怎麼把資源表的文件寫入到C盤,看圖回答、 解決+300懸賞
使用易語言將資源表中的文件寫入到C盤的具體步驟如下:
首先,您需要編寫相應的代碼來指定文件路徑和需要寫入的文件內容。例如,您可以編寫如下代碼:
寫到文件(「c:\輔助\msc」+"\優優雲答題插件.exe",到位元組集(#優優雲答題插件))
這行代碼中的「c:\輔助\msc」是目標文件的路徑,「優優雲答題插件.exe」是目標文件名,而「到位元組集(#優優雲答題插件)」則是需要寫入文件的內容。
同樣地,您可以為其他插件編寫類似代碼:
寫到文件(「c:\輔助\msc」+"\超人答題插件.exe",到位元組集(#超人答題插件))
這行代碼中的「超人答題插件.exe」是目標文件名,「到位元組集(#超人答題插件)」是需要寫入的內容。
此外,還有一行代碼用於寫入另一個插件:
寫到文件(「c:\輔助\msc」+"\打碼兔答題插件.exe",到位元組集(#打碼兔答題插件))
在這里,「打碼兔答題插件.exe」是目標文件名,「到位元組集(#打碼兔答題插件)」是需要寫入的內容。
需要注意的是,在執行這些代碼之前,確保目標路徑「c:\輔助\msc」已經存在,並且具有寫入許可權。
如果您在執行過程中遇到任何問題,歡迎在本帖下方留言討論,共同解決。
希望以上信息對您有所幫助!