最近「独習C」と言う
ハーバート・シルト著の参考書を読みながら
プログラムをパチパチ打っています。
C言語暦は1ヶ月位で、基本構文を覚えた位です。
それらをどう組み合わせて使ったら良いのか、までは
まだ大きな物を作った事が無いので分かりません。
そして、最近ぶっつけ本番で
DXライブラリを使ったゲームを作り出しました。
今回難儀している所は
「structをexternするにはどうすれば良いんだろう!?」
です。独習Cにも分割コンパイルの方法は
externを使え位しか記載されていなくて?
普通に
extern struct Test{ int a; int b; int c; }tt;とやってもコンパイラがエラーを出して来ます。
さっき難儀しながら現在作っているゲームのソースと同じ感じで
まずい部分をピックアップしたプログラムを作って見ました。
──────────────── [ Player.h ] #pragma once extern struct tt TEST; void Stick(void); ──────────────── [ Player.cpp ] #include"Player.h" void Stick(void) { TEST.a=20; TEST.b=30; TEST.c=40; } ──────────────── [ Test.h ] #pragma once #include<stdio.h> struct Test{ int a; int b; int c; }tt; #include"Player.h" ──────────────── [ Main.cpp ] #include<stdio.h> #include"Test.h" int main(void) { a=10; b=20; c=30; return 0; } ────────────────このソースを実行すると下記のエラーが出ます。
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland Player.h: Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error: 外部シンボル '_main' が未解決(C:\BORLAND\BCC55\LIB\C0X32.OBJ が参照)
質問をまとめてみますと
structをexternするにはどうすれば良いのでしょうか。
環境は下記の通りです。
OS:WindowsXPpro SP3
コンパイラ:Borland C++ 5.5.1
ライブラリ:DXライブラリ