私はVisual Studioのそれのようないくつかのヘッダファイルで定義された構造、多くの持っている2008年にC++アプリケーション書いている:ソースファイルで定義に移動すると、失敗する - のVisual Studio 2008の
#pragma pack(push , 1) // align on a 1-byte boundary
typedef struct myStruct_tag
{
/* ... */
} myStruct_t;
#pragma pack(pop) // end 1-byte boundary alignment
を、これらの定義された構造は、そのまま使用されています。それが正常に時々私は(例えばMyFunc
のように)カスタムデータ型を右クリックしたときに、それは私にエラーを与え、0エラーと0警告をコンパイル
void MyFunc(void)
{
myStruct_t * myStruct = NULL;
myStruct = (myStruct_t *)malloc(sizeof(myStruct_t));
/* and so forth and so on... */
}
にもかかわらず:
The symbol 'myStruct_t' is not defined.
それから私は、ダイアログボックスを閉じて、ソリューションを再構築するはCtrl +Altキー + F7を押して[OK]をクリックします。エラーや警告なしでビルドされるので、コンパイル時にmyStruct_t
の定義が見つかりましたが、を使用しようとすると見つかりません。定義に移動してください。私に起こる唯一の事は、このアプリケーションは1バイトで整列された多くの構造体を持っていますが、違いはありません。誰もがこれを修正する方法を知っていますか?
これはトリックでした!ありがとう! –
Visual Studio 2010には* .ncbファイルはありません。 * .sdfファイルを使用します。 – Loghorn
私の間違いです。私はVS2008を使用しています。それに応じてOPを更新します。 –