1:
0 x00007ffd4f5e7788 (located in the AddressBook. Exe) caused by abnormal: Microsoft c + + exceptions: Roaming: : RoamingCacheException, located in the memory location 0 x000000ad8befbea0,
0 x00007ffd4f5e7788 (located in the AddressBook. Exe) caused by abnormal: Microsoft c + + exceptions: [rethrow], is located at memory location 0 x0000000000000000,
2:
F: \ dd \ vctools \ vc7libs \ ship \ atlmfc \ SRC \ MFC \ dbcore CPP (616) : AppMsg - Warning: ODBC Success With the Info, f: \ dd \ vctools \ vc7libs \ ship \ atlmfc \ SRC \ MFC \ dbcore CPP (174) : AppMsg - driver SQLSetConnectAttr failure
F: \ dd \ vctools \ vc7libs \ ship \ atlmfc \ SRC \ MFC \ dbcore CPP (174) : AppMsg - State: IM006, Native: 0, Origin: [Microsoft] [ODBC driver manager]
F: \ dd \ vctools \ vc7libs \ ship \ atlmfc \ SRC \ MFC \ dbcore CPP (954) : AppMsg - DBMS: ACCESS
F: \ dd \ vctools \ vc7libs \ ship \ atlmfc \ SRC \ MFC \ dbcore CPP (958) : AppMsg - Version: 12.00.0000
F: \ dd \ vctools \ vc7libs \ ship \ atlmfc \ SRC \ MFC \ dbcore CPP (964) : AppMsg - the ODBC Driver Manager Version: 03.80.0000
3:
0 x00007ffd4f5e7788 (KernelBase. DLL) (located in The AddressBook. Exe) caused by abnormal: 0 x0000071a: The remote procedure call was canceled, or if a call time - out was specified, The call timed out,
The ODBC connection database code, are familiar, before using the X86 program compiled Net2013 didn't these problems,
Now under WIn10X64 compilation occurs, carefully debugging or appear in connecting to the database (using the CDatabase OpenEx)
Database is unusual, memory and other anomaly are capture,
Data set is no problem,
But running, the output is always there in this a few exceptions,
I couldn't find the reason, please prawns help,
CodePudding user response:
Environment: Win10X64 (1607) + Office2016X64VC + + 14.0
CodePudding user response:
The database access to all have no problemCodePudding user response:
Sometimes not to "call a function name + each parameter value, after entering the function of each parameter values, intermediate variable values, exit the function return value of preparation, return to the function to call after the function value of the parameter name + + return value" this information to write logs to a file is where no matter how to also can not find the problem, including capture all kinds of abnormal, writing log to the screen and single step or set a breakpoint or core file is generated,... These methods are not! Write logs to a file reference below://loop to a function sends a length of 200 bytes (this is the fixed) buffer,
//a function need to incoming buffer, the circulation of 240 bytes (fixed) new buffer for processing,
//when dealing with each new printing takes two bytes of the buffer
# ifdef _MSC_VER
# pragma warning (4996) disable:
# endif
#include
#include
#include
# ifdef _MSC_VER
#include
#include
#include
# define MYVOID void
# define vsnprintf _vsnprintf
# the else
#include
#include
#include
# define CRITICAL_SECTION pthread_mutex_t
# define MYVOID void *
# endif
//the Log {
# define MAXLOGSIZE 20000000
# define MAXLINSIZE 16000
#include
#include
#include
Char logfilename1 []="MyLog1. Log";
Char logfilename2 []="MyLog2. Log";
The static char logstr [MAXLINSIZE + 1];
Char datestr [16].
Char timestr [16].
Char MSS [4].
CRITICAL_SECTION cs_log;
The FILE * flog;
# ifdef _MSC_VER
The Lock (CRITICAL_SECTION void * l) {
The EnterCriticalSection (l);
}
Void Unlock (CRITICAL_SECTION * l) {
LeaveCriticalSection (l);
}
Void sleep_ms (int) ms {
Sleep (ms).
}
# the else
The Lock (CRITICAL_SECTION void * l) {
Pthread_mutex_lock (l);
}
Void Unlock (CRITICAL_SECTION * l) {
Pthread_mutex_unlock (l);
}
Void sleep_ms (int) ms {
Usleep (ms * 1000);
}
# endif
Void LogV (const char * pszFmt, va_list argp) {
* struct tm now;
Struct timeb TB;
If (NULL==pszFmt | | 0==pszFmt [0]) return;
Vsnprintf (logstr, MAXLINSIZE pszFmt, argp);
Ftime (& amp; TB);
Now=localtime (& amp; TB. Time);
Sprintf (datestr, "% d % % 4 d - 02-02 d", now - & gt; Tm_year + 1900, now - & gt; Tm_mon + 1, now - & gt; Tm_mday);
Sprintf (timestr, "02 02 02 % d: % d: % d", now - & gt; Tm_hour, now - & gt; Tm_min, now - & gt; Tm_sec);
Sprintf (MSS, "% 3 d", TB. Millitm);
Printf (" % s % s. % s % s ", datestr, timestr, MSS, logstr);
Flog=fopen (logfilename1, "a");
If (NULL! Flog)={
Fprintf (flog, "% s % s. % s % s", datestr, timestr, MSS, logstr);
If (ftell (flog) & gt; MAXLOGSIZE) {
The fclose (flog);
If (rename (logfilename1 logfilename2)) {
Remove (logfilename2);
Rename (logfilename1 logfilename2);
}
} else {
The fclose (flog);
}
}
}
Void the Log (const char * pszFmt,... ) {
Va_list argp;
The Lock (& amp; Cs_log);
Va_start (argp, pszFmt);
LogV (pszFmt argp);
Va_end (argp);
Unlock (& amp; Cs_log);
}
//the Log}
# define ASIZE 200
# define BSIZE 240
# define CSIZE 2
Char Abuf [ASIZE];
Char Cbuf [CSIZE];
CRITICAL_SECTION cs_HEX;
CRITICAL_SECTION cs_BBB;
Struct FIFO_BUFFER {
Int the head;
Int tail;
Int size;
Char data [BSIZE];
} BBB;
Int No_Loop=0;
Void HexDump) (int cn, char * buf, int len) {
int i,j,k;
Char binstr [80].
The Lock (& amp; Cs_HEX);
for (i=0; iIf (0==16) (I %) {
Sprintf (binstr, "% 3 d % 4 x -", cn, I);
Sprintf (binstr, "% s % 02 x", binstr, buf (unsigned char) [I]);
} else if (15==16) (I %) {
nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull