アプリ版:「スタンプのみでお礼する」機能のリリースについて

何かオプションが足りないとかあるのでしょうか。
cl test01.c advapi32.lib

ちなみにコンパイラは
Microsoft Visual C++ Toolkitのcl.exeと
Microsoft SDKのライブラリです。

A 回答 (4件)

#1の方が言われるように


#include <windows.h>
#include <winreg.h>
のようにして下さい
    • good
    • 0
この回答へのお礼

No.1さんの言われるようにすると、逆じゃないですか・・?

お礼日時:2005/07/02 14:07

>システムが容易しているヘッダと、そうでないヘッダというのは、どう区別するのでしょうか?



システムが用意しているものは、開発環境で必ずあるもの。VCとかマイクロソフトのSDK等で用意されたものの事です。

それ以外っていうのは、自分が作ったライブラリを提供する為に用意する様なヘッダファイルの事です。

>winreg.hファイルは、windows.hと同じフォルダに容易されているので、windows.hが、システムが容易しているものと考えるならば、winreg.hも同じだと思うんですけど。

そうです。だからBLUEPIXYさんが書いてる書き方が一般的です。
    • good
    • 0
この回答へのお礼

なるほどなるほど。
ということは、言葉の微妙な綾の取り違いがあって、話がこじれてしまったのでしょうか。
それとも、僕が勝手に読み違えてただけかな・・?

ところで・・
元凶がわかりました。

#include <winreg.h>
#include <windows.h>

としてしまっていたのが原因でした。

まずwinreg.hをインクルードし、そのなかでDWORDやINTなどが宣言されているのがわかり、windows.hを付け足したのですが・・
winreg.hをプリプロセッシング?(preprosessing)するときに、まだwindows.hの型が定義されていなかったためでした・・。

初歩的でかつ、到底答えれないような質問ですみませんでした><

お礼日時:2005/07/02 18:39

#include <>はシステムが用意しているヘッダ


それ以外は#include ""とするのがお決まりです。

で、それはコンパイラ上今は別に問題ではなさそうですが、
RegSetValueEx()等では
Winreg.h 内で宣言、Windows.h をインクルードして使うようですし、宣言がwindows.hを使ってるものもありそうです。

まあ、参考URLでも見ながら勉強してください。

参考URL:http://www.kab-studio.biz/Programing/Codian/MFCT …
    • good
    • 0
この回答へのお礼

URLの場所はすでに参考にしたのですが。。

GUIの開発環境ではなく、Visual C++のような設定方法ではないので、ビルドというようなものはわからないので、RegOpenKeyExなどの、主関数を参考にした程度でした。

ところで、システムが容易しているヘッダと、そうでないヘッダというのは、どう区別するのでしょうか?
winreg.hファイルは、windows.hと同じフォルダに容易されているので、windows.hが、システムが容易しているものと考えるならば、winreg.hも同じだと思うんですけど。
それともどっちも「それ以外」のヘッダファイルということですか?

お礼日時:2005/07/02 16:18

#include <winreg.h>


ではなく、
#include "winreg.h"
ではないでしょうか?
Cの標準ライブラリの場合は
#include <xxx.h>
ですが、それ以外の場合は、
#include "xxx.h"
を使うはずです。
また、
#include "Windows.h"
は、ありますか?


エラーの内容がわからないので、はずして
いるかもしれませんね。

参考URL:http://www.g-ninja.net/tips/shutdown.html
    • good
    • 0
この回答へのお礼

今までGUIアプリをつくるときには、
#include <windows.h>
でやってましたが・・。

で、URLのプログラムをコピペしてコンパイルしてみました。
cl test02.c advapi32.lib
が、やはりエラーがでました。エラーは次の通りです。

test02.c
test02.c(14) : error C2275: 'DWORD' : illegal use of this type as an expression
C:\Program Files\Microsoft SDK\include\WinDef.h(141) : see declaration of 'DWORD'
test02.c(14) : error C2146: syntax error : missing ';' before identifier 'cbReturned'
test02.c(14) : error C2144: syntax error : '<Unknown>' should be preceded by '<Unknown>'
test02.c(14) : error C2144: syntax error : '<Unknown>' should be preceded by '<Unknown>'
test02.c(14) : error C2143: syntax error : missing ';' before 'identifier'
test02.c(14) : error C2065: 'cbReturned' : undeclared identifier
test02.c(15) : error C2275: 'BYTE' : illegal use of this type as an expression
C:\Program Files\Microsoft SDK\include\WinDef.h(143) : see declaration of 'BYTE'
test02.c(15) : error C2146: syntax error : missing ';' before identifier 'bBuffer'
test02.c(15) : error C2144: syntax error : '<Unknown>' should be preceded by '<Unknown>'
test02.c(15) : error C2144: syntax error : '<Unknown>' should be preceded by '<Unknown>'
test02.c(15) : error C2143: syntax error : missing ';' before 'identifier'
test02.c(15) : error C2065: 'bBuffer' : undeclared identifier
test02.c(15) : error C2109: subscript requires array or pointer type
test02.c(16) : error C2275: 'TOKEN_PRIVILEGES' : illegal use of this type as an expression
C:\Program Files\Microsoft SDK\include\WinNT.h(5177) : see declaration of 'TOKEN_PRIVILEGES'
test02.c(16) : error C2065: 'pToken' : undeclared identifier


まだまだあるのですが、文字制限でひっかかりましたので省きます・・

お礼日時:2005/07/02 14:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!