電子書籍の厳選無料作品が豊富!

VBで処理を作成していたのですが、バイナリデータを編集する処理を追加する事になりました。
VC++なら、上手くデータをコンバート出来たのでVC++をDLL化して作成中です(もともとは6.0のVC++のプログラムです)。
新しくプロジェクト(VC++)を作成(WIN32プロジェクト)しVBから作成したDLLを呼び出す所までは上手く出来たのですが、肝心のバイナリデータをOPENする所が上手く行きません。
VC++の方でCFileを使用する際に#include <afx.h>でエラーになってしまいます。
先ほども投稿したのですが、結果惨敗だったので、再度質問するしだいですw

バイナリのファイル:kalrt.bat
#include <afx.h>
wchar_t* pFileName;
pFileName = L"kalrt.bat";
CFile fr;  ← エラー
char buff[1000];
if (!fr.Open(pFileName, CFile::modeRead,NULL )){
  while(fr.Read(buff,0x800)){//
---処理---
}

CFileを使用する場合は、MFCアプリケーションを使うとの内容を頂けたのですが、どのように構成したら良いか分かりません。いろいろとサイトを調べても見つけられませんでした。

分かりやすい説明があるサイトなどがありましたら、教えて下さい。

急いでいるので説明が上手く出来ていないので、説明が足りない場合は補足に記載します。

よろしくお願いします。

A 回答 (3件)

DLLファイルだったのですね。


VisualStudio2010で、メニューの[ファイル]-[新規作成]-[プロジェクト]を選択して、[Visual C++]-[MFC]-[MFC DLL]を選んで新規プロジェクトを作成しましょう。
あとは、

・VC6のコードを新しいプロジェクトに追加する

または

・新しいプロジェクトの設定やインクルードファイルの指定と同じになるように、VC6から移行したプロジェクトを変更する

のどちらか簡単な方を行えばいいんじゃないでしょうか。

この回答への補足

回答ありがとうございます。
説明が足りなくてすみませんでした。
MFC DLLを作成してコンパイルしたのですが、以下のようなエラーが出ましたが問題ありませんか?w
IntelliSense: #error ディレクティブ: Please use the /MD switch for _AFXDLL buildsc:\program files\microsoft visual studio 10.0\vc\atlmfc\include\afxver_.h813

補足日時:2010/12/01 16:35
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
大変助かりました。
もう少し調べてみます。
ありがとうございました。

お礼日時:2010/12/01 16:41

VC++2010はProfessional以上ですか?


Express EditionではMFCは使えませんが。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
VC++2010はProfessional以上ですか?
VS2010はProfessionalになります。
MFCは使えました。
参考にさせて頂きます。

お礼日時:2010/12/02 08:41

作成しなおしている VBってどの版なのでしょう?


VB2010とかなのでしょうか
そうなると MFCでってより VB2010の中でやってしまったほうが簡単かもしれないですよ

単なる MFCDLLですと VB側でDeclare宣言を追加しないと使えなかったような気がします
データの受け渡しなどのマーシャリングとかも必要になってしまう場合があります

単機能だけのDLLでMFCを使うのですとそのためだけに必要なMFC関連のDLLもインストールしないといけないし
あまりメリットがあるとは思えません

今ある VC6のDLLをそのまま流用は出来なかったのでしょうか
機能改善が必要とか ・・・

この回答への補足

VC6はもともとEXEで動いていたので、DLLは存在してはいません。
今回のようなVBからVCを呼び出す仕様になったのでDLL化するようになりました。

補足日時:2010/12/02 08:43
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
一応タイトルにVS2010(VisualStudio2010の略) バイナリデータ 初心者と記載してあります。分かりづらかったですね。
ちなみにDllを呼び出すようにDeclare宣言してます。呼び出しは問題ありません。受け渡しも問題ありません。Dll側でバイナリデータを読む記述()CFileが分からなかったので、上記を踏まえ参考にさせて頂きます。

お礼日時:2010/12/02 08:40

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