VS*のVC共通コンパイル運転エラー蓄積

2807 ワード

1.
#define LOG4CPLUS_STATIC      ->1
#include      ->2#include  #include  #include
バージョンを変更するときに、知らず知らずのうちに->1と->2の順序を狂わせ、コンパイルのエラーを招くことがあることに注意してください.気をつけて.さもないとnを探しても答えが見つからないかもしれません.
 
2.
#include "stdstringt.h"
#import  "C:\Program Files\Common Files\SYSTEM\ADO\msado15.dll"  rename("EOF","rstEOF")
#import  "RedisCli.tlb"no_namespace#include "global.h"#include #include "Ado.h"#include "WLock.h"#include "RedisCliEx.h"#include "HDTLog.h"
これに対して
#import  "C:\Program Files\Common Files\SYSTEM\ADO\msado15.dll"  rename("EOF","rstEOF")
必ず#include“Ado.h”の前に、さもないとadoになるから.h見つからない.
#include "stdstringt.h"
に置く
#include"global.h"の前にglobal.hで使います.
 
3.
#include
使用:ws**
4.Init=?Init@@YGHXZ   @1 PRIVATE GetResult=?GetResult@@YGHHPADPAPAD@Z @2 PRIVATE SetResult=?SetResult@@YGHHPAD0@Z @3 PRIVATE
次の2つが=後ろに見つからない場合は、まず最初の=後ろの削除を行うことができます.そしてまた見ます.
5.プロジェクトにはmain関数が必要です.main関数は関数___にあるからです.tmainCRTStartupで参照
6.The value of ESP was not properly saved across a function call
 
1つのdllに1つの関数が整数値を返し、パラメータが6つの列であることが知られています.パラメータはdllの関数で変更できます.次の文を使用して関数を呼び出します.
typedef   int   (*TEST)(CString&,CString&,CString&,CString&,CString&,CString&); 
TEST   test; 
test=(TEST)GetProcAddress(hinst, "test "); 
test(a,b,c,d,e,f); 
実行時に次のエラーメッセージが表示されます.
The   value   of   ESP   was   not   properly   saved   across   a   function   call.     This   is   usually   a   result   of   calling   a   function   declared   with   one   calling   convention   with   a   function   pointer   declared   with   a   different   calling   convention.   
しかし、他のプログラム(他の人のプログラム)は正常にこの関数を呼び出すことができますが、これはなぜですか?
/////////////////////////////////////////
呼び出し約定が一致しないことを明らかにする
プラス_stdcall呼び出し規則
typedef   int   (_stdcall   *TEST)(CString&,CString&,CString&,CString&,CString&,CString&) ;
この問題は主に呼び出し約束が一致しないことであり,他の人がWINAPI(_stdcall)を指定していない場合,呼び出し約束は_cdecl
7.CoInitializeEx(NULL, COINIT_MULTITHREADED) ;COMのマルチスレッドルームに入る
8._beginthreadexはヘッダファイルを追加する必要があります.h
9.時には、1>PCL-pxi.lib(Dialog.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in CameraData.obj
が引用したlibライブラリのDebug版とRelease版が間違っているかどうかを見ることができる奇妙なエラーが発生することがあります.
10.システムのヘッダファイルが見つからない場合は、システムの検索パスを確認します.