DaemoniZ
03.05.2008, 12:50
В хорошо изветном нам глянцевом жюрнале за февраль 2004 года (#062) была статья на эту тему. В ней был преведен код по сабжу
#include <windows.h>
void main()
{
char *old = "C:\\TMP\\somefile.txt";
char *_new = "C:\\TMP\\twodots..";
//переменные для нового и старого имени файла
char *newname;
wsprintf(newname,"%s.\\",_new);
//добавляем символы «.\» в новое имя файла
MoveFile(old, newname);
//переименовываем файл
}
Не могу скомпилировать. VC6 ругается:
--------------------Configuration: tryfatntfs - Win32 Debug--------------------
Compiling...
main.cpp C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\tryfatntfs\main.cpp(15) : warning C4700: local variable 'newname' used without having been initialized
Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/tryfatntfs.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
tryfatntfs.exe - 2 error(s), 1 warning(s)
С другим способом тоже проблема:
#include <windows.h>
#include <iostream.h>
void CreateStrangeFile(char *filename)
{
char *curdir; //текущая папка
char *uncpath; //полный путь до файла в формате UNC
GetCurrentDirectory(MAX_PATH,curdir); //получаем текущий каталог
wsprintf(uncpath,"\\\\?\\%s\\%s",curdir, filename); //формируем UNC-путь
HANDLE hFile = CreateFile( uncpath, GENERIC_WRITE, FILE_SHARE_WRITE, NULL,
CREATE_ALWAYS, NULL, NULL);
//создаем новый файл
DWORD ret;
__try {
WriteFile(hFile,"This is a super secret info",28,&ret, NULL);
//записываем секретную инфу
}
__finally {
CloseHandle(hFile);
//закрываем файл
}
}
void main()
{
CreateStrangeFile("prn");
//создаем файл «prn»
}
--------------------Configuration: tryfatntfs - Win32 Debug--------------------
Compiling...
main.cpp
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\tryfatntfs\main.cpp(13) : warning C4700: local variable 'curdir' used without having been initialized
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\tryfatntfs\main.cpp(15) : warning C4700: local variable 'uncpath' used without having been initialized
Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/tryfatntfs.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
tryfatntfs.exe - 2 error(s), 2 warning(s)
Как исправить?
Оригинал статьи (http://www.xakep.ru/magazine/xa/062/080/1.asp)
#include <windows.h>
void main()
{
char *old = "C:\\TMP\\somefile.txt";
char *_new = "C:\\TMP\\twodots..";
//переменные для нового и старого имени файла
char *newname;
wsprintf(newname,"%s.\\",_new);
//добавляем символы «.\» в новое имя файла
MoveFile(old, newname);
//переименовываем файл
}
Не могу скомпилировать. VC6 ругается:
--------------------Configuration: tryfatntfs - Win32 Debug--------------------
Compiling...
main.cpp C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\tryfatntfs\main.cpp(15) : warning C4700: local variable 'newname' used without having been initialized
Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/tryfatntfs.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
tryfatntfs.exe - 2 error(s), 1 warning(s)
С другим способом тоже проблема:
#include <windows.h>
#include <iostream.h>
void CreateStrangeFile(char *filename)
{
char *curdir; //текущая папка
char *uncpath; //полный путь до файла в формате UNC
GetCurrentDirectory(MAX_PATH,curdir); //получаем текущий каталог
wsprintf(uncpath,"\\\\?\\%s\\%s",curdir, filename); //формируем UNC-путь
HANDLE hFile = CreateFile( uncpath, GENERIC_WRITE, FILE_SHARE_WRITE, NULL,
CREATE_ALWAYS, NULL, NULL);
//создаем новый файл
DWORD ret;
__try {
WriteFile(hFile,"This is a super secret info",28,&ret, NULL);
//записываем секретную инфу
}
__finally {
CloseHandle(hFile);
//закрываем файл
}
}
void main()
{
CreateStrangeFile("prn");
//создаем файл «prn»
}
--------------------Configuration: tryfatntfs - Win32 Debug--------------------
Compiling...
main.cpp
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\tryfatntfs\main.cpp(13) : warning C4700: local variable 'curdir' used without having been initialized
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\tryfatntfs\main.cpp(15) : warning C4700: local variable 'uncpath' used without having been initialized
Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/tryfatntfs.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
tryfatntfs.exe - 2 error(s), 2 warning(s)
Как исправить?
Оригинал статьи (http://www.xakep.ru/magazine/xa/062/080/1.asp)