2010-11-22 149 views
1

我正在嘗試使用MSVC++ 2010 Express Edition編譯Scintilla控件,並且讓它正常工作非常痛苦,因爲我需要一堆文件。當編譯SString.h,我注意到了這一點:#include <crtdll/stddef.h>是什麼意思?

#include <crtdll/stddef.h> 

我沒有C++程序員,但我不明白是什麼

#include <xxx.h> 

手段,但是那又有什麼包括什麼意思呢?我與它下面的錯誤:

錯誤1個錯誤C1083:無法打開包含文件:「CRTDLL/STDDEF.H」:沒有這樣的文件或目錄˚F\火花\詞法分析器\ sstring.h 44

任何幫助我如何解決它將不勝感激。

+1

我*認爲*這意味着`stddef.h`應該在`crtdll`目錄下,在搜索標題的默認路徑上,但是這樣做已經有一段時間了。 – FrustratedWithFormsDesigner 2010-11-22 15:37:47

回答

1

如果我沒有記錯的話,這只是一個相對路徑。換句話說,Visual Studio會在crtdll的子目錄中尋找stddef.h,可能是項目的根目錄。

+0

這也是我的想法,但我從未嘗試過。謝謝。 – david 2010-11-22 15:48:26

0

這意味着需要從crtdll文件夾中包含stddef.h。

您需要檢查Visual C++項目的包含目錄,以查看哪些是Visual Studio查找頭文件的默認目錄。

要解決此錯誤,請參閱您安裝Scintilla控件的路徑。 crtdll文件夾將最有可能在那裏。然後,將此文件夾添加到您的visual studio include目錄中。

您可以在下面的項目屬性對話框進行設置:

Here http://i56.tinypic.com/2zo9guh.jpg

0

我沒有C++程序員,但我不明白是什麼

你確定嗎? 包含<>搜索指定文件的包含路徑,並將該文件的內容複製到.cpp文件中。 所以你只是錯過了crtdll/stddef.h文件,但是stddef.h實際上屬於C標準庫,所以你可以用C中的#include或者C++中的#include代替它最簡單的方法是檢查你的include目錄。 crtdll是由msvc提供的C標準庫,所以也許你必須添加標準庫包含目錄的父文件夾

1

通過使用上述函數,你正在召喚,然後在你當前的源代碼中插入一個頭文件。

#include <crtdll/stddef.h>你會被插入從crtdll目錄stddef.h頭文件(這應該是在你的編譯器定義爲頭文件握着筆子文件夾)程序的編譯和鏈接期間的情況。

通過stddef.h頭文件插入到你的源代碼是給你的程序揮舞NULL指針常數,這是在一些你可能會或可能不會遇到更高級的程序非常有用的功能。

祝您的程序順利!