用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”已经存在,并且具有写入权限。
如果您在执行过程中遇到任何问题,欢迎在本帖下方留言讨论,共同解决。
希望以上信息对您有所帮助!