現在C言語の勉強をしています。
参考書を購入する資金が少なく、
どの参考書を買えば迷ってしまいます。
多くの開発者のお勧めは、署 林 晴比古 氏の「改訂シリーズ」がわかり易いと聞いていいます。

現在コンパイルなどの作業は、Visual Studio6.0の
VC++6.0を利用してやっています。
MSDNのヘルプを検索してもイマイチ理解に苦しみます。

覚えたい概要は・・・
外部から入力されてくるデータを
タイムスタンプ、時間などを取得し、
テキストファイルに格納させ、
なおかつ改行する。
テキストファイルがない場合は新しく作成する・・・

上記の内容が入ったDLLの作成方法。

内容は一つ一つ理解は出来てきているのですが、
基本的なDLLの作成方法、が詳しく説明しているような
文面が記述しているものか、

ヘッダファイルの作成方法が詳しく記述している・・・
参考書を探しています。

現在本当にお金が少なく、一冊ぐらいしか
買えそうもありません。

よろしくお願いします

このQ&Aに関連する最新のQ&A

A 回答 (2件)

私は、高専の情報工学科の者です。


自分も授業の課題を部屋で行うのにVC++6.0を用いています。
利用しはじめてから、クラスの友人たちから薦められたのはまさしく
林 晴比古 著 「VC++6.0入門 -ビギナー編ー 」です。
これには、他にもシニア編とスーパービギナー編があります。
「とりあえず何か簡単なアプリケーションが作りたい」
とか
「VC++6.0の使い方がちょっと・・・」
という時は、ビギナー編が良いと友人に薦められました。
この本の巻末にはC++について書いてあるので、これも勉強になります。
ちなみに学校の授業でしようしているのは
椋田 実 著 「はじめてのC」(技術評論社)
          ↑(たしか最新版は第4版だったかと思います。)
これは、リファレンス的にはとても役に立ちます。
    • good
    • 0
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q「古い圧縮ファイル」の確認方法

Dドライブのディスクのクリーンアップをしたいのですが、実行できるものが、「古い圧縮ファイル」の削除しかありません。

「古い圧縮ファイル」がどのプログラムかを確認する方法を教えてください。

また、圧縮されたファイルの名前は青くなるらしいのですが、見つかりません。どうしてでしょうか
圧縮ファイルは1G弱あります。

Aベストアンサー

http://www.atmarkit.co.jp/fwin2k/win2ktips/106cleanup/106cleanup.html

初期設定では、50日以上アクセスの無かったファイルに対して、圧縮が行われます。
当然、圧縮してからでないと、ファイル名は青色にはなりませんので、ディスク・クリーンアップでの候補段階では、黒色のままです。


尚、設定によっては青色表示にならない場合も有りますけど。

http://121ware.com/qasearch/1007/app/nec.jsp?005084

QVisual Basic6.0で作ったデータをVisual C 6.0を用いて通信したい(DLLファイルを作成)

Visual C 6.0
Visual Basic 6.0
WindowsXP

掲題の件ですが、
VBで作成したデータをVCで通信したいと思い、
値を受け渡すにはDLLファイルを作って関数の戻り値にすれば良いと調べて分かり、
作成方法を知りたく質問させていただきました。

まず、
・どちらのプログラムでDLLファイルを作成したらいいか
・どのようにコードを記述して作成したら良いか(VB,VC)

VCで一度作成しようと思い、サンプルコードを調べ、ビルドしたところ
「デバック・・・実行可能ファイル・・・」
と表示されファイルを選ばなければいけない画面になりました。
これはどれを選択すれば良いのでしょうか。

よろしくお願い致します。

Aベストアンサー

VBでEXE VCでDLLを作る場合、ぼくはよく以下の手順で作成デバックします。

1 VCでまずDLLを作成
2 VBでそのDLLの関数を呼び出すコードを書く
(Declareステートメントはご存知ですよね?)
3 VCで実行
このときデバッグ対象の実行ファイルを VB6.EXE
(つまりVB自体を指定)
4 VBが起動したら先ほど作った呼び出しコードを含むプロジェクトをロードして実行

って感じです。
でもこれは両方同時に開発する時で、まー普通はDLLを完成させてからでしょうかね。

Qファイルの圧縮方法

AVIやMPGの画像ファイルを圧縮する方法を教えてください。900mb位のファイルをCD-Rに落とし込める700mbまで圧縮したいんですが。できれば、zipやlzhなどの後で解凍しなくてはいけないような圧縮方法ではなく、多少画像が荒くなってもファイルを単純に縮小させるような方法を教えていただけると有り難いのですが。。
因みに、TMPGEncを試してみたんですが、どうもうまくいかなくて。。ファイルサイズが元のファイルより逆に大きくなってしまうんです。
すいませんが、宜しくお願いします。

Aベストアンサー

画像圧縮?くす(^^
エンコはTMPGEncやaviutlでやるのがふつーです。
ええ 絶対! 
aviutl
http://ruriruri.zone.ne.jp/aviutl/

zipとかで圧縮しても意味ありません サイズ的に。

で、TMPGEncで元より大きくなるのは問題は
コーデック、画像サイズ、 音声ファイルなど
理由はいっぱいあります。対処は類似質問みて↓
http://oshiete1.goo.ne.jp/kotaeru.php3?q=625581

だから圧縮というか再エンコードが面倒なら
ファイルをテキトーな部分でカットする方向性はどお?
CD-R 2枚に保存 450 450 くらいでカット。
対処は類似質問みて↓
http://oshiete1.goo.ne.jp/kotaeru.php3?q=610331
ではでは!

追伸
カンタンにならrmファイルに変更かなあ
でも画質は落ちますよ
ネット配信 ストリーミング形式でどぞ!
RealplusG2とかRealEncoderで変換
でもaviでもないしmpegでもないですけど、どお?

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=610331

画像圧縮?くす(^^
エンコはTMPGEncやaviutlでやるのがふつーです。
ええ 絶対! 
aviutl
http://ruriruri.zone.ne.jp/aviutl/

zipとかで圧縮しても意味ありません サイズ的に。

で、TMPGEncで元より大きくなるのは問題は
コーデック、画像サイズ、 音声ファイルなど
理由はいっぱいあります。対処は類似質問みて↓
http://oshiete1.goo.ne.jp/kotaeru.php3?q=625581

だから圧縮というか再エンコードが面倒なら
ファイルをテキトーな部分でカットする方向性はどお?
CD-R 2枚に保存 450...続きを読む

Qvc++6.0にてdllとlibraryを作成する方法

vc++6.0にてdllとlibraryを作成する方法
を知りたいのですが、dllとlibraryを
それぞれ新規プロジェクトで立ち上げれば
作成できるのですが、dllを作成した際に
libraryも作成(自動)されるようなことは
できないのでしょうか?

Aベストアンサー

DLLをビルド(作成)すればLIBも同時に作成されますよ。
プロジェクトフォルダのRelease(又はDebug)配下に存在しているはずです。

Qファイルの圧縮方法が解りません

窓の杜やベクター等に置かれている、フリーの圧縮、解凍ソフトをダウンロードしていますが、テキストファイルや、画像ファイルの圧縮方法が解りません。何方か教えて頂けませんか?

Aベストアンサー

ソフトの開発者のサイトで質問することをお奨めします。

ソフトごとに操作方法が異なりますので、使用しているソフト名すらない状態では誰も必要とする回答を出せません。

窓の杜やベクターでは開発者のサイトへのリンクがありますから、そこからアクセスできますよ。

QVC6.0で作成したDLLでVBからの配列を受け取る方法

VC++でDLLを作成しています。
VBから呼び出しで、配列を渡し、その配列の値を
VCで使用したいのです。
通常変数でテストして、うまくいっているのですが、
配列に変更したところ、値がうまく渡りません。
どなたかお分かりになられる方いらっしゃいましたら
お力をお貸し願えないでしょうか?
変数で成功しているプログラム
VB6.0
標準モジュール
Declare Function fncTest Lib "fncTest.dll" (a As Long) As Long
フォーム
Private Sub Test_Click()
dim i as integer
i = fncTest(1)
End Sub

VC++6.0
fncTest.h
fncTest_API int _stdcall fncTest(int);
fncTest.cpp
fncTest_API int _stdcall fncTest(int a)
{
a = a+1;
return a;
}
fncTest.def
    省略
変数aを配列に変更して作ってみたもの(配列bにVBからの配列aの値を入れようとしていますが、
うまくいっていません。)
VB6.0
標準モジュール
Declare Function fncTest Lib "fncTest.dll" (ByRef a() As Long) As Long
フォーム
Private Sub Test_Click()
Dim i As Integer
Dim hairetu(7) As Long
Dim values As Variant
For i = 0 To 7
hairetu(i) = i
Next i
values = fncTest(hairetu())
End Sub

VC++6.0
fncTest.h
fncTest_API int _stdcall fncTest(int*);
fncTest.cpp
fncTest_API int _stdcall fncTest(int* a)
{
int b[7];
int i;
for (i = 0;i <= 7;i++){
b[i] = a[i];
}
return 0;
}

以上よろしくお願いします。

VC++でDLLを作成しています。
VBから呼び出しで、配列を渡し、その配列の値を
VCで使用したいのです。
通常変数でテストして、うまくいっているのですが、
配列に変更したところ、値がうまく渡りません。
どなたかお分かりになられる方いらっしゃいましたら
お力をお貸し願えないでしょうか?
変数で成功しているプログラム
VB6.0
標準モジュール
Declare Function fncTest Lib "fncTest.dll" (a As Long) As Long
フォーム
Private Sub Test_Click()
dim i as integer
i = fncTest(1)
End Sub

...続きを読む

Aベストアンサー

VBの配列は管理領域などを含んでいますので、
そのままではうまく渡りません。
配列の先頭要素を参照渡しするとうまくいくと
思います。この場合、当然ですがC側では配列の
範囲を知ることが出来ませんので、その辺は引数で
管理してください。
ちなみに、ユーザ定義型の配列は各要素がメモリ内で
連続してないようなので、ユーザ定義型の場合は
ご注意ください。

Declare Function fncTest Lib "fncTest.dll" (ByRef a As Long, ByVal n As Long) As Long
フォーム
Private Sub Test_Click()
Dim i As Integer
Dim hairetu(7) As Long
Dim values As Variant
For i = 0 To 7
hairetu(i) = i
Next i
values = fncTest(hairetu(0), 8)
End Sub

VC++6.0
fncTest.h
fncTest_API int _stdcall fncTest(int*, int);

fncTest.cpp
fncTest_API int _stdcall fncTest(int* a, int n)
{
int sum;
int i;
for (i = 0; i < n; i++){
sum = a[i];
}
return 0;
}

VBの配列は管理領域などを含んでいますので、
そのままではうまく渡りません。
配列の先頭要素を参照渡しするとうまくいくと
思います。この場合、当然ですがC側では配列の
範囲を知ることが出来ませんので、その辺は引数で
管理してください。
ちなみに、ユーザ定義型の配列は各要素がメモリ内で
連続してないようなので、ユーザ定義型の場合は
ご注意ください。

Declare Function fncTest Lib "fncTest.dll" (ByRef a As Long, ByVal n As Long) As Long
フォーム
Private Sub Test_Click()
Dim...続きを読む

Qpsdファイルの圧縮方法

psdファイルの圧縮方法を教えてください。(基本的質問で恐縮ですが)
win98です。なお、ファイルは9MB程度ですが、圧縮したものを解凍する際、鮮明度が落ちずに元通りの画像で開けますでしょうか?

Aベストアンサー

●大きなサイズのファイルを分割して送付

+Lhaca 1.20 デラックス版での分割方法
http://park8.wakwak.com/~app/Lhaca/

 1. インストールは、ダウンロードした Lhaca120.exe を実行する。
 2. デスクトップに作成された +Lhaca のショートカットに、
   対象のファイルをALTキーを押しながらドロップする。
 3. 保存場所を聞いてくるので、望みの場所を指定する。
   (圧縮形式は、相手が解凍できる形式を選ぶ。)
 4. 分割されたファイル群と結合用のバッチファイルが作成される。
   (デフォルトでは 1.2MB を上限として分割される。)
   (このサイズは +Lhaca で変更できる。)
 5. (4)のファイル全てを、容量を超えないようにメールに添付して送信
   する。
   (添付ファイル総数を本文に明記すること。)
 6. 受け取った側は、全ての添付ファイルを一箇所に集めて、バッチファ
   イルを実行する。
   (操作手順は、本文に明記すること。)
 7. 分割されたファイルが結合されるので、結合された圧縮ファイルを解
   凍する。
 8. 9MBのファイルが解凍されるので、作業する。


これでどうかな!?

※他の圧縮ソフトも分割機能が備わっていると思うが・・・

●大きなサイズのファイルを分割して送付

+Lhaca 1.20 デラックス版での分割方法
http://park8.wakwak.com/~app/Lhaca/

 1. インストールは、ダウンロードした Lhaca120.exe を実行する。
 2. デスクトップに作成された +Lhaca のショートカットに、
   対象のファイルをALTキーを押しながらドロップする。
 3. 保存場所を聞いてくるので、望みの場所を指定する。
   (圧縮形式は、相手が解凍できる形式を選ぶ。)
 4. 分割されたファイル群と結合用のバッチファイルが作成される。
   (...続きを読む

QネイティブのDLLをC++/CLIに対応させるためのヘッダファイル

ネイティブのDLLをC++/CLIに対応させるためのヘッダファイル

現在ネイティブのDLLをVisual StudioのC++/CLIに対応させる作業をしていますが、順調に進んでいません。
ネイティブのDLLをC++/CLIに対応させたヘッダファイルがあれば参考にしたいのですが、何か参考にできるホームページ等、紹介して頂けますか?

Aベストアンサー

>ネイティブのDLLをC++/CLIに対応させたヘッダファイルがあれば参考にしたいのですが、何か参考にできるホームページ等、紹介して頂けますか?

要するにネイティブコードの.NETラッパーの書き方ということですよね?
http://www.atmarkit.co.jp/fdotnet/special/vcppinvista01/vcppinvista01_02.html
http://codezine.jp/article/detail/1382
とかどうでしょう。
他にも調べてみると結構出てくるので色々見てみると良いかもしれません。
http://www.google.co.jp/search?hl=ja&client=firefox-a&hs=iG5&rls=org.mozilla%3Aja%3Aofficial&q=C%2B%2B%2FCLI%E3%80%80%E3%83%A9%E3%83%83%E3%83%91%E3%83%BC&aq=f&aqi=&aql=&oq=&gs_rfai=

QNTFS圧縮したファイルを全部まとめて戻す方法

NTFS圧縮したファイルをプロパティからひとつひとつチェックをはずして戻すのではなく、圧縮されたファイルを全部まとめて元に戻す方法ってあるのでしょうか?

Aベストアンサー

圧縮を解除したいファイルを全て選択した状態で
→プロパティ→NTFS圧縮のチェックを外す→OK

それらのファイルがフォルダに入っているなら
フォルダのプロパティからやってもいい。
(サブフォルダにも適用するか尋ねられるからOKにする)

QVC++6.0で作成したクラスをVB6.0で使うには?

初めて投稿します。
プログラミング初心者の為、初歩的な質問になるかもしれませんがご容赦下さい。普段、主にVisual Basic6.0(以下VB6.0)でプログラミングを行なっています。
VB6.0には演算子のオーバーロードする機能がない(?)ため、Visual C++6.0(以下VC++6.0)でプログラミングを行い、VC++6.0で作成したクラスをVB6.0で呼び出して使用したいと考えています。
インターネット上でいろいろと調べてみたのですが、その方法がわからず投稿させていただきました。VC++6.0で作成したDLLの中の関数をVB6.0で呼び出して使用する方法はわかったのですが、クラスということになると、DLLでは無理なのでしょうか?
どなたか、VC++6.0で作成したクラスをVB6.0で呼び出す方法、または勉強方法(教材)などを教えていただけると助かります。
宜しくお願いいたします。

Aベストアンサー

 こんばんは。

 純粋なC++では無理ですが、要はCOM/OLE/ActiveX等、そっち系で作成すれば可能です。
 但し、operator += ()等の様なオーバーロード演算子は不可能です。

 COMを1から実装するのは、顔が歪む程大変な事なので、MFCやATLを使用した方が効果的です。

 ATLの使用方法と実装については、以下が参考になります。
 http://www.koutou-software.co.jp/junk/use-atl-mystruct.html

 自身で検索する際には
 「COM OLE ActiveX ATL IDL バイナリインターフェース」等のキーワードを使うと見つかり易いでしょう。

 後、私の所有しているCOMの書籍によれば、「GUID」を作成する際、オフライン状態で作成すると、世界全国の誰かが作成した「GUID」と衝突を起こす可能性があると書いてありました。
 恐らく、ATL等のウィザードでコードを自動作成している時、一緒に作成される「GUID」にも、同じ事が言えるかもしれません(多分その筈)。
 取り敢えず、オンライン状態で着手される事を、強くお勧めします。

 こんばんは。

 純粋なC++では無理ですが、要はCOM/OLE/ActiveX等、そっち系で作成すれば可能です。
 但し、operator += ()等の様なオーバーロード演算子は不可能です。

 COMを1から実装するのは、顔が歪む程大変な事なので、MFCやATLを使用した方が効果的です。

 ATLの使用方法と実装については、以下が参考になります。
 http://www.koutou-software.co.jp/junk/use-atl-mystruct.html

 自身で検索する際には
 「COM OLE ActiveX ATL IDL バイナリインターフェース」等のキーワードを使...続きを読む


人気Q&Aランキング