トップページ⇒tech
1001コメント306KB

★初心者にVisual C++を教えるスレ★ Part5

■ このスレッドは過去ログ倉庫に格納されています
0001987NGNG
タイトルのとおり、
Visual C++ 初心者用スレッドです。

前スレ・関連スレは、>>2 ぐらい。
0731デフォルトの名無しさんNGNG
>>730
ライセンスの種類によっては可能だったと思われ。
0732デフォルトの名無しさんNGNG
隊長、馬鹿(>>730)を発見しました!
いかがいたしましょう?
0733デフォルトの名無しさんNGNG
VC++ 6.0でADOを使用してAccessのテーブルから
該当件数を表示するものを作りたいのですが、
レコードセットの値を変換して取得する方法がわかりません。
お助けください。

_ConnectionPtr pCn;
_CommandPtr pCm;
_RecordsetPtr pRs;

::CoInitialize(NULL);

pCn.CreateInstance(__uuidof(Connection));
pCm.CreateInstance(__uuidof(Command));
pRs.CreateInstance(__uuidof(Recordset));

pCn->Open(L"Provider=Microsoft.Jet.OLEDB.4.0; Data Source =test.mdb",
L"",L"",adOpenUnspecified);

pCm->ActiveConnection = pCn;

pCm->CommandText = "SELECT COUNT(*) FROM 帳票 WHERE 担当 LIKE '%佐藤%'";pRs = pCm->Execute(NULL,NULL,adCmdText);

ここからどうすれば良いでしょうか?
0734733NGNG
申し訳ない。
何とかなりそうです。

_variant_t vIndex = (long)0;
_variant_t vCount = pRs->GetCollect(vIndex);
long l = vCount.lVal;
0735デフォルトの名無しさんNGNG
STLの事を質問しようと思ってタイトル検索したら

鳥嶋宇宙科学技術研究所(TSTL)どんな研究所?
■▼■各放送局STL周波数【スタジオ⇔アンテナ】

がイパーイ出てきました。鬱です


0736デフォルトの名無しさんNGNG
VisualC++.NETでVC++6.0同様にプロジェクトにリソーステンプレートぶちこんで
テンプレートにダイアログぶち込んだのにリソースのヘッダーファイルが
作られていませんでした。そのためかDialogBoxを使っても
キャラ配列で名前を指定したり、MAKEINTRESORCEでダイアログ
ボックスのIDを生でぶちこんだりしても、IDを認識していないのか
ダイアログボックスを作れません。だれか対応策教えてください。
0737デフォルトの名無しさんNGNG
>>736
ぶ、ぶちこむって、あんまり連呼しないで〜(*´д`*)
0738デフォルトの名無しさんNGNG
>>650,653 宛


 バ グ 込 み の ソ ー ス を プ リ ン ト ア ウ ト し て も
 次 の 日 に は も う 使 い 物 に な ら ん だ ろ ( 爆 笑



0739デフォルトの名無しさんNGNG
>>738
アメリカンジョークですか?
0740デフォルトの名無しさんNGNG
背景の透過の仕方が分かりません。SetBkColorを使うのは分かるのですが。教えてください。
0741名無し@沢村NGNG
>>740
SetLayeredWindowAttributes()
0742デフォルトの名無しさんNGNG
windws + vc+++
os XP

VCでプログラムを実行したあと、右上の×ボタンでウインドを消去

その後再びコンパイルしようとすると、LINK ERR 対象のファイルが使用中.....

これは終了処理が正しく行われていないからだと思われるのですが、
なにをしていない場合おこるのでしょうか?

windowsクラスは破棄しているのですが、それ以外にも defwndprocに何か渡さないといけないのでしょうか?
0743デフォルトの名無しさんNGNG
>>742
自己解決しました。
windowsクラスが破棄できていませんでした。
0744デフォルトの名無しさんNGNG
オススメの書籍教えて

ちなみに超絶初心者です
0745デフォルトの名無しさんNGNG
ねこぷー
0746デフォルトの名無しさんNGNG
>>744
完全自殺マニュアル
0747デフォルトの名無しさんNGNG
>>740
SetBkColor使うと真っ白(真っ黒だっけ?)の
モノクロビットマップにBitBltしたときに
設定した色の部分だけ色が変わるのです。(確か黒)
そのモノクロビットマップをマスクに使って
転送するのです。
0748デフォルトの名無しさんNGNG
最近C++始めたんですが、エディットボックス1〜10(m_ed1〜10)を配列に収集するのに、
for文で10回ループさせようと思ってるんですが、メンバ名にカウント変数[i]を反映させるにはどうしたら(・∀・)イイ?


int dat[10];
for(i=0;i<10;i++)
{
dat[i] = m_ed[i] ←こんなことがしたい…
}


厨でスマソ…
0749デフォルトの名無しさんNGNG
コントロールのIDを連番にして
GetDlgItem(ID + i, ・・・・・・)とか
0750デフォルトの名無しさんNGNG
datにコントロールのポインタを必要なだけ入れておけばいいだけでは?
0751デフォルトの名無しさんNGNG
>>750
いや、それをループでやりたいってことだろ
0752デフォルトの名無しさんNGNG
>>749,750
レスthx!!
750さんの方が簡単にできそうなので、さっそく逝ってきまつ♪
0753デフォルトの名無しさんNGNG
>>751
いや、正直、収集できたらなんでもいいんで、さっそくやってみまつ…
ポインタ、見過ごしてました…(汗)
0754デフォルトの名無しさんNGNG
え、もしかして
CEdit arrayEdit[10];
arrayEdit[0] = &m_ed1;
arrayEdit[1] = &m_ed2;
 :
 :
int dat[10];
for(i=0;i<10;i++)
{
dat[i] = arrayEdit[i]->GetLineCount();
}
みたいなことでいいのか?てっきり最初の
arrayEdit[0] = &m_ed1;の部分をループでやりたいのだと思って・・・
0755デフォルトの名無しさんNGNG
CEdit* だった。ま、いいか。
0756デフォルトの名無しさんNGNG
>748
DDXつかっての話だったら、
  DDX_Text(pDX, IDC_EDIT_NUM0, m_iNum0);
  DDX_Text(pDX, IDC_EDIT_NUM1, m_iNum1);
みたいに自動生成されるところで
  DDX_Text(pDX, IDC_EDIT_NUM0, m_iNum[0]);
  DDX_Text(pDX, IDC_EDIT_NUM1, m_iNum[1]);
と手動で書く。 と漏れはやってる。

力尽く主義なら 更新関数とかで
const int* pT[]= { &m_ed1, &m_ed2, ... };
for(int i=0;i<MAXNUM;i++) dat[i] = *pT[i];
てな方針を提案。
0757デフォルトの名無しさんNGNG
えっと…厨なんで、難しい記述はできないんですが、
int *dat[10]={&m_ed1,&m_ed2…}
の一行だけで、すべてはかたずきました…

ループは、その後のプログラムで使うんで、データ収集も、そのまんまそのループ内に入れようとしてただけなんですわ…



なにぶん、独学で本読みながら学んでるんで、まだまだわからないことだらけです…
(ノД`)シクシク
0758デフォルトの名無しさんNGNG
>>756
Σ(゜Д゜;≡;゜д゜)
も、漏れがやったのは、力づくなのか?そうなのか?(汗)
0759756NGNG
Σ(;´Д`)あ いや
変数名いまさら変えたくないYO! という場合はこちら みたいな
ニュアンスでな…   正直スマソ
0760デフォルトの名無しさんNGNG
DDXに頼り杉。EDITのIDを連番にして↓が最適解だと思う。
for(int i=0; i<10; ++i)
 dat[i] = this->GetDlgItemInt(ID_FIRST_EDIT + i);
0761デフォルトの名無しさんNGNG
何をもって過ぎることになるんだ。使えるなら使えばいいじゃないか。
0762デフォルトの名無しさんNGNG
わたしも760のようにいつも書いているのですが
書きながら、IDが連番であることを仮定したコードを書くのは
論理的に美しくないような気がして(´・ω・`)ショボーン となってしまいます。
0763デフォルトの名無しさんNGNG
初めまして、最近VC++を始めたばかりのプログラム初心者です。このたびは質問があって、「すれ立てるまでもない質問スレ」のほうから移動して書きこみさせていただきました。
Visual Studio.NET Standard Version2002を使ってManaged C++アプリケーションのコードを練習していて、いざコードを書き終わってビルドしたところ
「fatal error C1102:次の初期化が出来ません:クラスが登録されていません」というエラーがタスクに表示されました。そこをダブルクリックしたらstdafx.cppというところに飛ばされたのですが、
当方初心者のため、そこで何をしたらいいのかわからなくて問題を解決できないでいます。この問題を解決するにはどうしたらよいのでしょうか?
私の使っているOSはWindowsXPで教本には「ステップバイステップで学ぶVisualC++.NET実践講座Vol.1基礎編」を使っています。ステップ2の「animals」というプログラムを作っているときにこの問題が発生しました。
どうかご存知の方いたらよろしくお願いします。
0764デフォルトの名無しさんNGNG
>>763
ソースを書いたら?
0765デフォルトの名無しさんNGNG
>>763
VC++Ver6しか持ってないので細かいとこが違うかもしれんが。
プロジェクト→プロジェクトへ追加→コンポーネント及びコントロール(P)
あたりで追加コントロールが必要なのかもね。
0766デフォルトの名無しさんNGNG
>>763
「ステップバイステップで学ぶVisualC++.NET実践講座Vol.1基礎編」が
いかなるものか、わからないけど、プリコンパイルヘッダを使用しないとかにしてみる。
0767763NGNG
>>764
すみません、書くべきソースがわかりません・・・
>>765
とりあえず一般C++のクラスを追加をいじってみたら「新しい構文要素を読み出すのに失敗しました構文エラーが考えられます」というエラーメッセージが出てきました。
>>766
プリコンパイルヘッダはどのようにして使用しないようにするのでしょうか?

結局勉強不足で、質問ばかりになってすみません・・・もっと勉強してきます。
0768デフォルトの名無しさんNGNG
>>760等

クリンナップ時に、resource.hをExcelでソートしたりする香具師もいると思うが、ID_DLG1_EDIT1みたいな名前を付けとけば連番が崩れなくて安全だ。
漏れはDDX近辺にASSERT(ID_EDIT_1+1 == ID_EDIT_2);みたいなアホなチェックも入れて、厨房が壊したら本人が気付くようにしているぞ。

(自慢なのか?)
0769デフォルトの名無しさんNGNG
用途にもよるが、俺だったら連続なエディットならリストビューを使うことを検討する。
0770デフォルトの名無しさんNGNG
動的にコントロールを作ればいいだけのような気がするけど
0771デフォルトの名無しさんNGNG
>>763
プリコンパイルヘッダは、コンパイルの高速化のために
コンパイルの途中結果をファイル化しておくもの。
ソースの一部変更などであればそのまま使えるが
ヘッダやソースの大幅変更した場合は破棄されて
再び作成される。
リビルドすれば、まっさらな状態からコンパイルできる。

もしかしたら、プロジェクトの作成方法がおかしいかもしれないので、
プロジェクトだけ別名で作成して、既に打ち込んだソースは別のところに
バックアップして、新しいプロジェクトのソースに貼り付けて見るといいかも。
0772デフォルトの名無しさんNGNG
ダイアログのオーナードローコントロールなんですけど、描画関数の中で使う
フォントについて。

↓は合法なのでしょうか。
HFONT hOldFont = (HFONT) SelectObject(hDC, GetParent() -> GetFont() -> m_hObject);

↓は結構目にするんですが。
LOGFONT lf;
GetParent() -> GetFont() -> GetLogFont(&lf);
HFONT hFont = CreateFontIndirect(&lf);
HFONT hOldFont = (HFONT) SelectObject(hDC, hFont);
0773デフォルトの名無しさんNGNG
基本的なことなんですがお尋ねしたいことがあります。
オーバーロードの利便性とはどのようなことなんでしょうか?
また、オーバーロードすることにより起こりえる問題点などありましたら教えていただきたいです。
0774デフォルトの名無しさんNGNG
まずはオーバーロードについて勉強しろ。
勉強すれば自ずと分かるはずだから。
0775 NGNG
システムモーダルなCFrameWndのフレームってどうやればいいですか?
0776デフォルトの名無しさんNGNG
今までMFCを用いてプログラムを行っていましたが
SDKを用いたプログラムを勉強することにしました。
2つばかり質問させてください。

やはりゲームなどで用いる画像処理の効率は
SDKの方がいくらか高速になるのでしょうか?

あとSDKでのプログラミングでは
ClassWizardが使えないのですが
様々なサイトを調べても
あまりクラスを使って説明している人はいません。
SDKでクラスを用いるのは一般的でないのでしょうか?
0777デフォルトの名無しさんNGNG
>やはりゲームなどで用いる画像処理の効率は
どう比較するの?
ゲーム用の画像処理用のクラスがMFCにあるという前提?
だったら
>今までMFCを用いてプログラムを行っていましたが
いままで何もやっていないのと一緒
0778デフォルトの名無しさんNGNG
CStringの"123.4"などをfloatに変換する方法を教えて下さい。
0779763NGNG
>>771
その方法を試みましたが結果は変わりませんでした。
「ステップバイステップで学ぶvisual C++.NET実践講座」には各ステップごとのプログラムの見本のプログラムが入ったCD−ROMがあるのですが、
その見本のプログラムをビルドしようとしても同じエラーが起こりました。Visual C++.NET Standard自体を再セットアップしたほうがいいでしょうか?
0780デフォルトの名無しさんNGNG
>>779
CD−ROMのサンプルをプロジェクトディレクトリごとLZHかZIPにでも
アーカイブしてどっかにうpしたらいかが?
それと、エラーメッセージをコピー&ペーストで書き込んだほうが良い。
エラーメッセージの種類(コード)がそれでわかる。

それと、ほんの最初のほうにでもプロジェクトの作成方法みたいなのが
書いてないの?
0781デフォルトの名無しさんNGNG
>>778
atof
0782デフォルトの名無しさんNGNG
>>780
プロジェクトの作成は一回しましたよ。Hello Worldですけど・・・それは正常に動作しました。
ビルドエラータスクに出てくるエラーメッセージは次のとおりです。
animals fatal error C1102: 次の初期化ができません : 'クラスが登録されていません
↑これをエラータスクでダブルクリックするとstdafx.cppの一行目に飛ばされます。
下記アプロダにてサンプルをうpしました。よろしくお願いします。

ttp://cgi.members.interq.or.jp/hokkaido/asato/upload/upload.cgi

0783763NGNG
↑コメントに763と書いてあるやつでZIPです。
0784デフォルトの名無しさんNGNG
VC++Proはアクティベーションのリミットが10回しかないのでしょうか?
もしリミットを超えたら新しく買いなおさないといけないのでしょうか?
2〜3ヶ月に1度は再インストールするので、ものすごく不安なんです。
0785デフォルトの名無しさんNGNG
>>784
割れ厨いってよし
0786デフォルトの名無しさんNGNG
VC++にアクティべーションがあるの?.NET?
0787デフォルトの名無しさんNGNG
WindowsのVC++で、
マウスカーソルの座標をセットする命令って何でしたっけ・・・?
0788デフォルトの名無しさんNGNG
>>787
0xFFFF0E87
0789デフォルトの名無しさんNGNG
現在.NETを使っているのですが、
参考書の問題で「新規作成」→「リソーススクリプト」を作成して〜
とあるのですが、その本は古めなので.NETが載ってません。
.NETではどうやればよろしいのでしょうか?
リソーステンプレートというのを選んでもフォルダらしいものができるだけですし、
他も.rcらしいものは作成できなそうです。
ヘルプを見てもそれらしいものは見つけられません。
どなたかご教授お願いいたします。
0790787NGNG


SetCursorPos()で、座標数値を与えても、カーソルがモニター上の左上で固まってしまうのです。
なぜだろう・・・
0791デフォルトの名無しさんNGNG
SetCursorPosに与える引数が両方とも0以下ではないか、と憶測してみるてすと。
0792787NGNG

ためにし、SetCursorPos(400,300)とかして、
OnMouseMoveから呼び出して、
マウスクリックしている間、マウスを動かしてもカーソルが動かないようにしたいのですが、
プログラム自体が停止してしまうような挙動をします・・・。
0793787NGNG
マウスクリックでマウスカーソル座標Aを取得
そのままマウスクリック中、OnMouseMove内で、
SetCursorPosに座標Aを与えると、無限ループになるのかな・・・?
0794787NGNG
他の方法をかんがえます・・・・・・
0795デフォルトの名無しさんNGNG
>>793
試してないからわからんが、
LButtonDownでGetCapture()して、キャプチャー中はWM_MOUSE_MOVEメッセージを
破棄というのはどうだろう?
0796デフォルトの名無しさんNGNG
最近VC++.NETの質問増えてきたねぇ。みんな乗り換えてんのかな。
0797780NGNG
>>782
ごめん、やっぱ、.netは全然違う。
.netが手元にないのでちょっとお手上げかも。
.net持っている人、ヘルプ782です。
0798デフォルトの名無しさんNGNG
>>782
.netは持ってないから勘で答えてみるけど、
__gc
ってやつを使う場合、コンパイルオプションに/clr を指定しないと
いけないみたいだけど、やってる?

参考
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vccore/html/vcrefEECOMCompilation.asp
0799デフォルトの名無しさんNGNG
>>782
.NET2003からだけど問題なくコンパイルできた
0800763.782NGNG
>>798
1.プロジェクトの [プロパティ ページ] ダイアログ ボックスを開く。
2.[構成プロパティ] フォルダをクリック。
3.[全般] プロパティ ページをクリック。
4.[マネージ拡張] プロパティを変更。
というMSDNに書いていた手順で変更すればよいのでしょうか?
だとしたら私のVisualC++.NETでは4番の[マネージ拡張]プロパティというのが出てこないのですが・・・

>>799
コンパイルできましたか・・・ご報告ありがとうございました。
0801デフォルトの名無しさんNGNG
C#ってC言語よりもVBに近いんですか?
0802デフォルトの名無しさんNGNG
>>800
まあ、勘なのでそんなもん。

ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vcmex/html/vcgrfmanagedcprojecttypes.asp
の「Managed C++ アプリケーション」というやつでプロジェクトを作っとかないと4.が出ないとか?
でも2003で問題ないということは、関係ないかも。
0803763.782NGNG
>>802
問題が発生しているのは、まさにその「Managed C++アプリケーション」っていうやつで作っているプロジェクトなんですけど4.は出てこないです。
0804デフォルトの名無しさんNGNG
>>776
ゲームってのはVBでもそうだけど基本的にイベントドリブンじゃなくて、
メインループを作ってその中をぐるぐる回すパターンが多い。
メインループとかいじるとMFCの意味無いじゃん。
だから必然的にSDKでやっちゃう。てかゲーム作成サイトなんてみんなそうでしょ。
まあ、最初MFCで作ってみるといいよ。みんなMFCで最初作ってあれこれ悩んで
SDKに移ったクチが多いと思うから。

こことかゲームの基本的な作り方の参考になると思うよ。
http://www.edit.ne.jp/~skyfox/axis/
上記HPの[AXIS ROOM] の [AXISゲーム製作入門(シューティング編)] てとこ。
今、ライブラリはDLできないけど、読めばなんとなくわかると思うです。
0805デフォルトの名無しさんNGNG
>>803
とりあえずC1102をMSDNで調べてみたら?
クラスというのがanimalクラスを指すのか、別のものを指すのか分からん。
0806763NGNG
>>805
高度な検索というヤツにC1102をかけてきましたが0件でした・・・
0807デフォルトの名無しさんNGNG
>>804
板違い
0808 NGNG
誰か、常に最前面にCFrameWndを置く方法教えてくだされ〜
0809名無し@沢村NGNG
>>808
SetWindowPos()
0810 NGNG
>>809 サンクス
0811デフォルトの名無しさんNGNG
>>806
付属のMSDN Libraryで調べた?
0812デフォルトの名無しさんNGNG
VBから最近移ってきた初心者です。
よろしこおながいします。m(__)m
自作のcppとhファイルをコンパイルして、いくつかのプロジェクトで
使いまわしたいのですが、プロジェクトでヘッダだけインクルードしても
「実装がない」といってビルドできません。(cppをファイルに追加すれば
もちろんいけるのですが...)
MFCとかはヘッダだけのインクルードでいいのになんで自作のだと
ダメなのでしょうか?

0813デフォルトの名無しさんNGNG
>>812
多分、リンカでバイナリのファイルを指定してやらないと
ダメなんでしょうけど、詳しくは他の方に。(w

MFCの場合はその辺が自動的に設定されていると思われ。

0814デフォルトの名無しさんNGNG
>>812
VC側から見ると、MFCは実装がどこにあるかわかってるけど、
君が作ったものはどこにあるかわからないから。
0815812NGNG
>>813,814
レスありがとうございます。
納得できました^^
またよろしくおながいします。。。
0816763NGNG
763です。このたびVisualC++.NETを再インストールしたところ問題が解決しました。
これで明日から安心してVC++を学べます。けっきょく詳しい原因はわかりませんでした。
板の皆様、問題解決にご協力いただき本当にありがとうございました。
いつか皆さんのように他人に教えられるくらいになってきます。
それでは失礼しました。ではでは・・・
0817新入社員@インターフェイス開発NGNG
Cはちらっとだけやったことがある、新入社員です。 
いきなり仕事を渡されて〜〜 わかんないからCと同じようにズラズラとmainに文を書こうとしたら、main()がないでやんの。 
VC++の場合はどこから読めばいいんですか?
先輩に質問したら「一応、最初に読むインスタンスはあるけど、オブジェクト指向がわかってたら別にmainから関数を読まなくても、モジュールを読めばいいだけ」
見たいに言われたんですけど、オブジェクト指向ではモジュールを読んだらmain()に何かの値を返さなくてもいいんですか?
モジュールからモジュールを読んでたら、いつ、どうやって終了するんだ? 見たいな疑問があるんですけど・・・・ 
0818デフォルトの名無しさんNGNG
>>817
Windowsプログラミングの場合は、WinMain() がエントリになります。
でもVC++の場合は、プロジェクトによっては WinMain もインクルード
ファイルの中に隠されてしまってるかも。

0819デフォルトの名無しさんNGNG
/***
*crtexe.c - Initialization for client EXE using CRT DLL (Win32, Dosx32)
*
* Copyright (c) 1991-1997, Microsoft Corporation. All rights reserved.
*
*Purpose:
* Set up call to client's main() or WinMain().
*
*******************************************************************************/
0820デフォルトの名無しさんNGNG
>>817 かなりてきとうですが。
・Win32コンソールアプリケーションならmain()スタートであなたの
やってたのでできると思います。
・Win32アプリケーションだとコンソールアプリとコードはかなり違うのも
多いのですが、Cに近い感覚で文字を表示したり計算したりできます。
http://www.kumei.ne.jp/c_lang/index_sdk.htmlの5章ぐらいまでを
勉強するとすぐにつかめると思います。
・MFCAppWizardが先輩の言ってたものかな?僕は挫折しました。
http://pc2.2ch.net/test/read.cgi/tech/1047949606/l50
ココはそのスレです。
システム系ならコンソールアプリ、その他なら、理系が得意ならウインアプリ
文系が得意ならMFCにするとか。
0821デフォルトの名無しさんNGNG
あのー。とってもくだらないんですけど。
ドッキングツールバーのつまみのとこが白くてかっちょ悪いんですけど
なんかちがう感じにできないですか?
0822780NGNG
>>816
おめ。
0823デフォルトの名無しさんNGNG
VCでコンパイルしてもエラーメッセージがでないんですがなぜでしょうか。
エラー1 警告0 などはでるんですが。
他のスレで親切な方に再インストしてみと言われたのでしてみたのですが、
JINT35.DLL、VBAR332.DLL、MSXBSE35.DLLというファイルが開くことができませんでしたとでました。
無視するとそのままインストールできるんですが、最後にシンボルファイルをセットアップするようにとでてきます。
それをセットアップしないとデバッカは呼び出し関数のコンテキストを決定できませんと・・。
セットアップするアイコンをクリックしてセットアップしようと思ったんですが
このマシン上の対応するdllファイルとマッチしませんとでて、
最後にすべてのシンボルファイルはシステム上へ正しくインストールされませんとでます・・。
これはエラーメッセージがでないのに関係あるんでしょうか。
向こうのスレではスレ違いだったのでこっちにきました。
分かる方いましたら教えてくださいお願いします。
0824デフォルトの名無しさんNGNG
>>823
とりあえずOSとVCのバージョンを教えてください。
0825デフォルトの名無しさんNGNG
参考書でやってるDLL作成の項での質問です。
VC6以前で「新規作成」→「Win32 Dynamic-Link Library」→「シンボルをエクスポートするDLL」と
なっているものは.NETではどうやればよろしいのでしょうか?
「新規作成」→「MFC DLL」とは思うのですが、その後の
「DLLの種類」でどれを選べばよいのかがわかりません。
アドバイスよろしくお願いします。
0826デフォルトの名無しさんNGNG
>>824
OSはXP
VCのバージョンは6.0です。
0827デフォルトの名無しさんNGNG
VC6で質問させてください。
あるポインタに構造体を連続して連結コピーする方法を教えてください


std::vector<stScreen4_1> _stScreen4_1;
LPDIRECT3DVERTEXBUFFER8 pVB;
void* pVertices;

if( FAILED( pVB->Lock( 0, sizeof(stScreen4_1)*_Ten, (BYTE**)&pVertices, 0 ) ) ) return E_FAIL;

//イメージとしてはこんな感じの事がしたいのですがコンパイルできません(´Д`)
for (i=0;i<_Ten;i++){
  memcpy( pVertices+sizeof(stScreen4_1)*i ) ,&_stScreen4_1.at(i) ,sizeof(stScreen4_1) );
}

stScreen4_1 は構造体宣言されています。
こうすると void*が型宣言されていないとでます。

かといってvoid* pVertices;を stScreen4_1* pVertices 代えると危険な香りがします。
なぜなら構造体の要素数が増えたり減ったいするからです。(大丈夫なのかなぁ?)

分かる方、アドバイスお願いします。
0828デフォルトの名無しさんNGNG
>>823
まずなによりも、もうちょっと自分のやった手順と結果をきちんと
整理して説明できるようになった方がいい。

本題については済まないがよく分からない。
実はadministrator権限のないユーザーでやってるとか、
WindowsXP Home Editionだったとか…?


>>827
コンパイラがやってることとは違うかもしれないけどこんな感じかな?

pVertices + sizeof(stScreen4_1)*i ) という式だと、
pVertices に (voidのサイズ(!) × sizeof(stScreen4_1)*i ) )を足そうとするが、
voidのサイズなんてものは無いので困る、と。
BYTE* pVertices;
にしてみたらどうだろう?

0829デフォルトの名無しさんNGNG
>>828
先生! ありがとう!うまくいきました。
1時間はまってました 感謝感激です。

0830新入社員@インターフェイス開発NGNG
>820
そのサイトを見るたびに俺は猫以下なのかって鬱になるんですけど。
■ このスレッドは過去ログ倉庫に格納されています