使某library中的function可能會碰到這種錯誤
除了忘記在makefile中加link以外
也可能是c和c++ compiler不同的問題
在c++的code中加入純c的lib
要把lib的header放在 extern "C"{} 裡面
2008年10月2日 星期四
2008年9月17日 星期三
2008年8月1日 星期五
VC的IntelliSense
在物件後面按"."會列出member
在function name後面打"("會自動顯示此function有什麼參數...
這些是IntelliSense的功能之一
要是發現IntelliSense 資訊不正確
可以砍掉ncb檔,重build後會更新IntelliSense
應該就會正確顯示了
在function name後面打"("會自動顯示此function有什麼參數...
這些是IntelliSense的功能之一
要是發現IntelliSense 資訊不正確
可以砍掉ncb檔,重build後會更新IntelliSense
應該就會正確顯示了
2008年3月27日 星期四
compile error: crosses initialization
../include/StSvrCmdThread.h:3157: crosses initialization of `int send_ret'
這種錯誤似乎是指程式碼中有用到goto時
使用goto的地方和lable中間如果有宣告變數
就會出現這種錯誤...
這種錯誤似乎是指程式碼中有用到goto時
使用goto的地方和lable中間如果有宣告變數
就會出現這種錯誤...
2008年3月12日 星期三
530 Login incorrect. ??
Status: Connecting to 172.16.100.66:19999 ...
Status: Connected with 172.16.100.66:19999.
Waiting for welcome message...
Response: 220 (vsFTPd 2.0.5)
Command: USER ccc
Response: 331
Please specify the password.
Command: PASS *********
Response: 530 Login incorrect.
一開始以為是帳號密碼有問題
沒想到是因為改到pam_service_name=vsftpd
這行似乎不能隨便更改 可能要搭配改變其他設定(??)才行
Status: Connected with 172.16.100.66:19999.
Waiting for welcome message...
Response: 220 (vsFTPd 2.0.5)
Command: USER ccc
Response: 331
Please specify the password.
Command: PASS *********
Response: 530 Login incorrect.
一開始以為是帳號密碼有問題
沒想到是因為改到pam_service_name=vsftpd
這行似乎不能隨便更改 可能要搭配改變其他設定(??)才行
2008年3月4日 星期二
VC2005 import DLL with CString
VC2005的WTL project要import一個MFC的DLL時出現問題
似乎參數不可以使用CString 因為ATL和MFC的CString type不一樣
還沒找到解決的辦法 暫時使用TCHAR
似乎參數不可以使用CString 因為ATL和MFC的CString type不一樣
還沒找到解決的辦法 暫時使用TCHAR
2008年1月21日 星期一
Runtime Error R6034
目前心得:
http://msdn2.microsoft.com/zh-tw/library/ms235624(VS.80).aspx
VC2005的應用程式需要透過manifest來使用某些library(MFC,ATL,CRT)
這些dll會放在WinSxS folder中
要使用必須要用manifest來指定需要什麼dll
執行時會透過manifest到WinSxS folder中去找對應版本的dll來使用
如果不用manifest直接把dll丟到binary的folder就會造成錯誤 (R6034)
manifest可以embed在binary中 也可以寫成external file
之前碰到的問題:
一開始是顯示找不到msvcr80.dll , 代表缺少這個dll
所以要修改manifest檔:
在project>properties>configuration properties>linker>manifest file>additional manifest dependencies中加入
type='win32' name='Microsoft.VC80.CRT' version='8.0.50608.0'processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b'
(version要自己到 WinSxSfolder去看 選擇其中一個版本)
這樣就會幫我們在manifest file中加入這段 接下來再build一次就可以執行了
http://msdn2.microsoft.com/zh-tw/library/ms235624(VS.80).aspx
VC2005的應用程式需要透過manifest來使用某些library(MFC,ATL,CRT)
這些dll會放在WinSxS folder中
要使用必須要用manifest來指定需要什麼dll
執行時會透過manifest到WinSxS folder中去找對應版本的dll來使用
如果不用manifest直接把dll丟到binary的folder就會造成錯誤 (R6034)
manifest可以embed在binary中 也可以寫成external file
之前碰到的問題:
一開始是顯示找不到msvcr80.dll , 代表缺少這個dll
所以要修改manifest檔:
在project>properties>configuration properties>linker>manifest file>additional manifest dependencies中加入
type='win32' name='Microsoft.VC80.CRT' version='8.0.50608.0'processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b'
(version要自己到 WinSxSfolder去看 選擇其中一個版本)
這樣就會幫我們在manifest file中加入這段 接下來再build一次就可以執行了
2008年1月11日 星期五
VC6 to VC2005 問題2
部分錯誤訊息如下:
c:\program files\microsoft visual studio 8\vc\include\xdebug(32) : error C2365: 'operator new' : redefinition; previous definition was 'function'c:\program files\microsoft visual studio 8\vc\include\xdebug(32) : error C2491: 'new' : definition of dllimport data not allowedc:\program files\microsoft visual studio 8\vc\include\xdebug(32) : error C2078: too many initializersc:\program files\microsoft visual studio 8\vc\include\xdebug(32) : error C2440: 'initializing' : cannot convert from 'int' to 'void *' Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style castc:\program files\microsoft visual studio 8\vc\include\xdebug(32) : error C2143: syntax error : missing ';' before '('c:\program files\microsoft visual studio 8\vc\include\xdebug(32) : error C2226: syntax error : unexpected type 'size_t'c:\program files\microsoft visual studio 8\vc\include\xdebug(33) : error C2059: syntax error : ')'c:\program files\microsoft visual studio 8\vc\include\xdebug(36) : warning C4229: anachronism used : modifiers on data are ignoredc:\program files\microsoft visual studio 8\vc\include\xdebug(36) : error C2365: 'operator new' : redefinition; previous definition was 'function'c:\program files\microsoft visual studio 8\vc\include\xdebug(36) : error C2491: 'new' : definition of dllimport data not allowedc:\program files\microsoft visual studio 8\vc\include\xdebug(36) : error C2078: too many initializersc:\program files\microsoft visual studio 8\vc\include\xdebug(36) : error C2440: 'initializing' : cannot convert from 'int' to 'void *' Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style castc:\program files\microsoft visual studio 8\vc\include\xdebug(36) : error C2143: syntax error : missing ';' before '['c:\program files\microsoft visual studio 8\vc\include\xdebug(36) : error C3409: empty attribute block is not allowedc:\program files\microsoft visual studio 8\vc\include\xdebug(36) : error C2226: syntax error : unexpected type 'size_t'c:\program files\microsoft visual studio 8\vc\include\xlocale(138) : error C2059: syntax error : 'string'c:\program files\microsoft visual studio 8\vc\include\xlocale(139) : error C2091: function returns functionc:\program files\microsoft visual studio 8\vc\include\xlocale(139) : error C2802: static member 'operator new' has no formal parametersc:\program files\microsoft visual studio 8\vc\include\xlocale(139) : error C2333: 'std::locale::facet::operator new' : error in function declaration; skipping function bodyc:\program files\microsoft visual studio 8\vc\include\xlocale(144) : error C2059: syntax error : 'string' .........
忘記在那邊看到的解法, 把project中的#define new DEBUG_NEW這行拿掉就行
c:\program files\microsoft visual studio 8\vc\include\xdebug(32) : error C2365: 'operator new' : redefinition; previous definition was 'function'c:\program files\microsoft visual studio 8\vc\include\xdebug(32) : error C2491: 'new' : definition of dllimport data not allowedc:\program files\microsoft visual studio 8\vc\include\xdebug(32) : error C2078: too many initializersc:\program files\microsoft visual studio 8\vc\include\xdebug(32) : error C2440: 'initializing' : cannot convert from 'int' to 'void *' Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style castc:\program files\microsoft visual studio 8\vc\include\xdebug(32) : error C2143: syntax error : missing ';' before '('c:\program files\microsoft visual studio 8\vc\include\xdebug(32) : error C2226: syntax error : unexpected type 'size_t'c:\program files\microsoft visual studio 8\vc\include\xdebug(33) : error C2059: syntax error : ')'c:\program files\microsoft visual studio 8\vc\include\xdebug(36) : warning C4229: anachronism used : modifiers on data are ignoredc:\program files\microsoft visual studio 8\vc\include\xdebug(36) : error C2365: 'operator new' : redefinition; previous definition was 'function'c:\program files\microsoft visual studio 8\vc\include\xdebug(36) : error C2491: 'new' : definition of dllimport data not allowedc:\program files\microsoft visual studio 8\vc\include\xdebug(36) : error C2078: too many initializersc:\program files\microsoft visual studio 8\vc\include\xdebug(36) : error C2440: 'initializing' : cannot convert from 'int' to 'void *' Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style castc:\program files\microsoft visual studio 8\vc\include\xdebug(36) : error C2143: syntax error : missing ';' before '['c:\program files\microsoft visual studio 8\vc\include\xdebug(36) : error C3409: empty attribute block is not allowedc:\program files\microsoft visual studio 8\vc\include\xdebug(36) : error C2226: syntax error : unexpected type 'size_t'c:\program files\microsoft visual studio 8\vc\include\xlocale(138) : error C2059: syntax error : 'string'c:\program files\microsoft visual studio 8\vc\include\xlocale(139) : error C2091: function returns functionc:\program files\microsoft visual studio 8\vc\include\xlocale(139) : error C2802: static member 'operator new' has no formal parametersc:\program files\microsoft visual studio 8\vc\include\xlocale(139) : error C2333: 'std::locale::facet::operator new' : error in function declaration; skipping function bodyc:\program files\microsoft visual studio 8\vc\include\xlocale(144) : error C2059: syntax error : 'string' .........
忘記在那邊看到的解法, 把project中的#define new DEBUG_NEW這行拿掉就行
訂閱:
文章 (Atom)
