visualc&x2B+;错误:调试断言失败 你好,我编译了C++程序,如果启动.exe,我会出错。
这是我的来源(main.cpp):visualc&x2B+;错误:调试断言失败 你好,我编译了C++程序,如果启动.exe,我会出错。 ,c++,C++,这是我的来源(main.cpp): #包括 #包括 #包括 #包括 #包括 #包括 #包括 //使用 使用名称空间std; 布尔存在(常量字符*文件名); int main(){ 试一试{ 手柄h; 字符串cClipboard=“”; CreateDirectory(“C:\\Program Files\\Clipboard Logger”,NULL); 如果(!fexists(“C:\\Program Files\\Clipboard Logger\\log.txt”)){ 文件*fp; fp
#包括
#包括
#包括
#包括
#包括
#包括
#包括
//使用
使用名称空间std;
布尔存在(常量字符*文件名);
int main(){
试一试{
手柄h;
字符串cClipboard=“”;
CreateDirectory(“C:\\Program Files\\Clipboard Logger”,NULL);
如果(!fexists(“C:\\Program Files\\Clipboard Logger\\log.txt”)){
文件*fp;
fp=fopen(“C:\\Program Files\\Clipboard Logger\\log.txt”,“w”);
fclose(fp);
}
while(true){
如果(!OpenClipboard(0)){
睡眠(2000年);
继续;
}
h=GetClipboardData(CF_TEXT);
CloseClipboard();
如果((char*)h==cClipboard){
睡眠(2000年);
继续;
}
cClipboard=(char*)h;
时间t=时间(0);
struct tm*now=localtime(&t);
文件*fp;
fp=fopen(“C:\\Program Files\\Clipboard Logger\\log.txt”,“a”);
int day=now->tm\u mday;
整月=现在->整月+1;
国际年=现在->国际年+1900;
整数秒=现在->整数秒;
int min=now->tm\u min;
整小时=现在->整小时;
字符对数线[sizeof((char*)h)+64];
sprintf(日志行,“%d.%d.%d.%d.%d.%d%s\n”,小时、分钟、秒、日、月、年,(字符*)h);
fprintf(fp,(char*)对数线);
fclose(fp);
提示:不要在C++中使用C风格的转换。不要尽可能地避免使用C,而是如果你不能避免使用C++的C++操作符。我希望UAC对你写文件到<代码>:\程序文件< /代码>不太满意。你没有检查FP是否在这行之后:<代码> FP= FOpenD(“C:\\Program Files\\Clipboard Logger\\log.txt”,“a”);
#include <iostream>
#include <string>
#include <Windows.h>
#include <dos.h>
#include <stdio.h>
#include <fstream>
#include <ctime>
// using
using namespace std;
bool fexists(const char *filename);
int main() {
try {
HANDLE h;
string cClipboard = "";
CreateDirectory("C:\\Program Files\\Clipboard Logger", NULL);
if (!fexists("C:\\Program Files\\Clipboard Logger\\log.txt")) {
FILE *fp;
fp = fopen("C:\\Program Files\\Clipboard Logger\\log.txt", "w");
fclose(fp);
}
while (true) {
if (!OpenClipboard(0)) {
Sleep(2000);
continue;
}
h = GetClipboardData(CF_TEXT);
CloseClipboard();
if ((char *)h == cClipboard) {
Sleep(2000);
continue;
}
cClipboard = (char *)h;
time_t t = time(0);
struct tm * now = localtime(&t);
FILE *fp;
fp = fopen("C:\\Program Files\\Clipboard Logger\\log.txt", "a");
int day = now->tm_mday;
int month = now->tm_mon + 1;
int year = now->tm_year + 1900;
int sec = now->tm_sec;
int min = now->tm_min;
int hour = now->tm_hour;
char logLine[sizeof((char *)h) + 64];
sprintf(logLine, "%d.%d.%d %d.%d.%d %s\n", hour, min, sec, day, month, year, (char *)h);
fprintf(fp, (char *)logLine);
fclose(fp);
cout << (char *)logLine << endl;
Sleep(2000);
}
getchar();
return 0;
} catch (...) {
}
}
bool fexists(const char *filename) {
ifstream ifile(filename);
if (ifile)
return true;
return false;
}