1read 100read
2012年3月プログラム177: ★初心者にVisual C++を教えるスレ★ Part38 (236)
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▼
COM (295)
【日本携帯】Mascot Capsule/Micro3D【標準】 (156)
「Cでプログラミングするには人生は短すぎる」か? (310)
foo (139)
バージョン管理システムについて語るスレ8 (978)
ソースのコメントを英語で書くスレ (979)
★初心者にVisual C++を教えるスレ★ Part38
- 1 :11/11/03
- Visual C++入門者・初心者からの質問を、
お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。
■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう、特にWindowsForm、MFC、Win32アプリケーションの区別。
・できるだけ具体的に。
質問の仕方については次のページが大変参考になります。
http://www.hyuki.com/writing/techask.html
■回答するにあたって
・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。
(MSDNのどの項目だとか、何のキーワードでGoogleするとか)
・ネタや煽りは軽く流しましょう。
【過去スレ】
Part37 http://hibari.2ch.net/test/read.cgi/tech/1299982561/
Part36 ttp://hibari.2ch.net/test/read.cgi/tech/1273939582/
Part35 ttp://pc12.2ch.net/test/read.cgi/tech/1256645713/
Part34 ttp://pc12.2ch.net/test/read.cgi/tech/1245382769/
Part33 ttp://pc12.2ch.net/test/read.cgi/tech/1235292263/
- 2 :11/11/03
- 【関連スレ】
■MFC相談室 mfc22d.dll■
http://hibari.2ch.net/test/read.cgi/tech/1316080347/
Win32API質問箱 Build97
http://hibari.2ch.net/test/read.cgi/tech/1318439361/
【C++】 DirectX初心者質問スレ Part36 【C】
http://hibari.2ch.net/test/read.cgi/tech/1319032065/
C言語なら俺に聞け(入門篇) Part 54
http://pc12.2ch.net/test/read.cgi/tech/1254829314/
C++相談室 part91
http://hibari.2ch.net/test/read.cgi/tech/1315922506/
C/C++の宿題片付けます 152代目
http://hibari.2ch.net/test/read.cgi/tech/1312201995/
- 3 :11/11/03
- 【関連サイト】
MSDN ライブラリ
http://msdn.microsoft.com/ja-jp/library/default.aspx
Windows SDK for Windows Server 2008 and .NET Framework 3.5
http://www.microsoft.com/downloads/details.aspx?FamilyID=f26b1aa4-741a-433a-9be5-fa919850bdbf&DisplayLang=en
- 4 :11/11/03
- 誰かおしえてください><
Win7の64bitマシンを使っています
Visual C++2010を使用しています。
アクティブソリューションぷらっとホームには、x64を追加することが出来たのですが
その下のプロジェクトのぷらっとホームにx64が出ません。何故ですか?
http://up3.viploader.net/ippan/src/vlippan243062.jpg
- 5 :11/11/03
- >>4
http://hibari.2ch.net/test/read.cgi/tech/1299982561/938
にょろん?
- 6 :11/11/03
- >>1
乙です
40代のLinux鯖屋ですが未だにVC6でたまに仕事がありますw
未だに作法がわからず、とりあえず動くものを納品してます。
よろです。
- 7 :11/11/03
- >>5
それわたしです
SDK入れたり色々してみたんですが
やっぱりうまく行きません
- 8 :11/11/03
- ウインドウアプリケーションを作っているんですが
基本ネットにつないであるデスクトップの32ビットVistaに入れたVC++2008EEはthis->とか入れたらドロップリストみたいなのが出て自動入力できるんですが
ノーパソの64ビット7に入れたVC++2010EEでは全く出てくれません。どうしてでしょうか?
- 9 :11/11/03
- >>8
「#include <」とか、
「#include "」とかって書くとどうなります?
2010からヘッダファイルもインテリセンスしてくれるので動作確認できます。
ちなみに、インテリセンスさんは頻繁に気絶されるので、動かないときは再起動してあげてください。
↑で何も変化ないなら、設定切れてるかインストール失敗したのでは?
- 10 :11/11/03
- >>9
ありがとうございます
#include <と書くとヘッダファイルのドロップリストがいっぱいでてきました
でもメンバは全く出ないのです
- 11 :11/11/03
- Ctrl+Jでおk
- 12 :11/11/03
- Ctrl+J?何もおこりませんが
- 13 :11/11/03
- ソリューションを全クリーンして、自分で .pdb (だっけ?)を削除した上でリビルドしてもかわんない?
- 14 :11/11/03
- .ncb も削除しとけよ
- 15 :11/11/05
- MethodInvokerデリゲートをC++で使いたいのですが、C++だけサンプルがなくて使い方がよく分からないです。
ttp://msdn.microsoft.com/ja-jp/library/system.windows.forms.methodinvoker.aspx#Y0
コンパイルしようとするとかっこの対応関係でエラーが出てしまいます。
どなたかC++での書き方を教えて頂けませんか。
- 16 :11/11/05
- そのサンプルのままやろうとしたの?
匿名メソッドって使えたんだっけ?
- 17 :11/11/05
- はい。
サンプルのままやろうとしました。
C++/CLIはサンプルが少ないので、いつもC#を参考にして色々試しているのですが、今回はどう変えればいいのか分かりませんでした。
- 18 :11/11/05
- C++/CLI には匿名メソッドがなかったような気が。
※ this.Invoke の行から始まるヤツのこと
でもデリゲートはあったはずだから、匿名メソッドの部分を通常?の関数?にして
やってみればいいんじゃね。それも分からないなら、デリゲートをちゃんと勉強してからだと思う。
で、あやふやな記憶で書いてる。間違ってたらごめん。
- 19 :11/11/06
- デリゲートの概念がすぐに理解できずにちょっと躓きましたが、なんとか解決できました。
関数化は簡単でしたが、関数で引数を受けなければならない場合、Invokeの引数は(デリゲートのインスタンス,引数)となるんですね。
アドバイスを下さった方々、ありがとうございました。
- 20 :11/11/06
- やっと立ったのね
遅いわよ>>1乙
- 21 :11/11/07
- ネストがややこしいのですが細かく考えすぎないほうがいいのでしょうか?
- 22 :11/11/07
- ネストが深くなるなら、深い部分を関数かするとかは同等手段だね。
try 〜 catch とか古くは do 〜 while(false) を使って流れの中では正常ケースしか存在しないようにするとかも。
- 23 :11/11/07
- x同等
o常套
- 24 :11/11/07
- すみません、ここ最近参考書を買って独学しているものです
頭では理解しているのですがいざこういう処理をするプログラムを書けって言われて書けないことが多々あるのですがまずいのでしょうか?
また対策として何かありますか?
- 25 :11/11/07
- >>24
それが普通。
その度に調べて自分の血肉にしていくしかない。
- 26 :11/11/07
- そうなんですか
自分語りのつもりはないのですが学生時代はアホだったものでこれも向いてないのかなと不安になりました
素早いレスありがとです
- 27 :11/11/07
- インストール時に保存先を別のディスクに選んでもへ殆どがC:に保存されるけど後でコピーして別のディスクにいれて起動できる?
- 28 :11/11/11
- VC ってプロジェクトの設定に OutDir のようなマクロ変数を使いますよね。
これの中身を外部のプログラムなどから覗くことは出来ないでしょうか。
プロジェクトファイルが XML で書かれているので、その中に定義があると思ってたのですが、見あたらなかったです。
- 29 :11/11/14
- 現在実行中のスレがどのような呼び出し階層でそこに居るのか調べて、std::stringに文字列を代入したいのです。
なんという関数を利用すれば解決できるかわかりません。
び出し階層、ログ、アサート、assertで検索してみましたが、節穴でみつけられていません。
ヒントをください。
- 30 :11/11/14
- >>29
スタックトレースという
こういうのを使ってごにょごにょやるようだ
http://msdn.microsoft.com/ja-jp/library/cc428994.aspx
- 31 :11/11/14
- 質問です。
メモリリークの検出方法を調べていたんですが。
@最初に_CrtSetDbgFlagを記述する方法と
// メイン関数
int main(int argc, char* argv[])
{
_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
:
}
A最後に_CrtDumpMemoryLeaksを呼び出す方法があるようなのですが
int main(int argc, char* argv[])
{
:
_CrtDumpMemoryLeaks();
}
@だとメモリリークが検出されずAだと数箇所のメモリリークが検出されてしまいます。
どちらが信用できるのでしょうか?ソースを追ってみたところ
メモリリークが発生しそうな箇所はありませんでした。
- 32 :11/11/15
- >>31
mainのスコープのデストラクタは_CrtDumpMemoryLeaks();を呼んだ時点で
まだ呼ばれてはいないぞ。ヒープの解放予定のあるオブジェクトがあったら
当然誤検知
だからどちらも信用できる
ただ@のほうが自動で全部終わったあとに調べるから使い勝手はいいと思われ
- 33 :11/11/16
- xmlのフォーマットで書かれたテキストファイルを読み込みたいのですが、
そもそも、ファイルの内容がXMLとしておかしくないかチェックしてくれる便利なライブラリを紹介いただけないでしょうか?
<root>
<piyo>ababababa<hoge></piyo>
Hello World</hoge>
</root>
の場合は、<piyo>に値があるのに、閉じられる前に次のタグが始まっているからパースエラー、というようなチェックをして欲しいのです。
よろしくお願いします。
- 34 :11/11/16
- 33です。
rapid_xml(もしくは、boost::property_tree)でxmlのパースができることを見つけたのですが、閉じタグをチェックしてくれないので少し困っています。
ここまでのチェックは、他のライブラリも含めて、してくれないものなのでしょうか?
<root>
<aa>えー</cc>
<bb>びー</bb>
</root>
この例の場合、<aa>の閉じタグが何故か</cc>になっているのでパースエラーになってほしいのですが、rapid_xmlだと問題なしにされてしまいます。
欲を出すと、boostライセンスのように取扱が簡単なものがよいのですが…。
MSXMLも試してみます。(…MSのは、どうしてこんなに複雑なのだろう…。)
- 35 :11/11/16
- 33です。スレッド間違えました。
【初心者歓迎】C/C++室 Ver.76【環境依存OK
↑のスレッドのつもりで書き込んでいました。申し訳ないです。あちらへ移動します。
- 36 :11/11/16
- ビルド結果の文字列の並びを変更することって可能でしょうか?
========== ビルド: 1 正常終了、0 失敗、0 更新不要、0 スキップ ==========
↓
========== ビルド: 正常終了 1、失敗 0、更新不要 0、スキップ 0 ==========
- 37 :11/11/16
- 不可能
- 38 :11/11/16
- >>36
msenvui.dllの中に入っている文字列リソースのようなので、
それを自己責任で書き換えてしまえばできるかもしれないけど。
- 39 :11/11/16
- (`●ω●´) < ふ か の う〜
と某スレでは書きます。
- 40 :11/11/16
- したいこと: スタートアップフォルダにソフトを置いて、PC起動時にRAMディスクドライブに
"z:\test\"という共有フォルダを作成したい。
#include "stdafx.h"
#include <direct.h>
int _tmain(int argc, _TCHAR* argv[])
{
_mkdir("z:\test\");
return 0;
}
あとは共有設定したいのですが続きをお願いします。
- 41 :11/11/16
- ttp://eternalwindows.jp/security/share/share02.html
- 42 :11/11/17
- mkdir
net share ...
のバッチで十分な気がしないでもない
- 43 :11/11/17
- プロジェクトのプロパティの
構成プロパティ>リンカー>入力>追加の依存ファイル
とは、何を入力する欄なのですか?
visual c++ 2010 Express を利用してプログラムの学習をしていて、
boost c++ libraryをインストールした際は、
Program Files\Microsoft SDKs\Windows\v7.0A
にヘッダとライブラリをコピーするだけで利用できたのに対して、
libxml2をインストールした際は、上記に加えて、
構成プロパティ>リンカー>入力>追加の依存ファイル
に対して、libxml2.lib を追記しないとリンクに失敗して、LNK2001・LNK2019が発生していたことが質問の背景にあります。
以前、何かのまねをしてプロジェクトを作っていたときに、
追加の依存ファイルに、ws_32.lib だったかを追記するようにという記述を思い出したので、
試してみたら、リンクエラーが無くなって解決できました。
そして、逆に、どうして必要・不要なのか気になってきました。
よろしくお願いします。
- 44 :11/11/17
- >>43
ライブラリは明示的にリンクしろと書かないかぎりリンクされない
追加の依存ファイルはリンクするライブラリを指定する場所
boostはヘッダに
#pragma comment(lib, "〜.lib")
と書いてリンカに自分のライブラリを指定しているから追加の依存ファイルに書かなくてもリンクが通る
- 45 :11/11/17
- テンプレートクラスが気持ち悪い
- 46 :11/11/17
- >>44
ありがとうございます。
ところで、どこでそんなことを知るのですか?
- 47 :11/11/19
- 現在VC2008で汎用のテンプレートクラスを作成していて
エラー出力の方法を模索しています
コンソールアプリならコンソールに
GUIアプリならアラートという風に出力先を静的に切り変えたいのですが
そのためのdefine定義がVCに既定であったりするのでしょうか?
- 48 :11/11/19
- _CONSOLE
ちょっとプロジェクト作ってプリプロセッサの定義を見れば書いてあるぞ。
でもそんなんで切り替えるんじゃなくて、例外かなにかをそのクラスを使う側で捕捉できるようにして、
捕捉した側で出力を行うようにした方が設計的に良くないか?
- 49 :11/11/19
- 今作成しているエラー処理がリリース時には必要のないもので
外部にまでひっぱりだすのが面倒臭いのでクラス内に直接書くつもりです。
本来のエラー処理の関してはおっしゃる通りだと思います。
- 50 :11/11/20
- privateのインスタンスメソッドのユニット試験がとても面倒です。
というか、やり方がわかりません。
教えて欲しいです。
C言語であれば、全ての関数はグローバル的な感じなので、適当なファイルにmain()を作って、そこから呼び出すだけだったのですが…。
自宅で趣味でプログラムをしているだけなので、殆ど試験をしていません。
が、何か寂しいです。
何かよい方法があれば教えてください。よろしくお願いします。
- 51 :11/11/20
- #ifdef [ユニット試験識別用のマクロ]
#define private public
#endif
とか。
- 52 :11/11/20
- インテリセンスorz
- 53 :11/11/20
- PDB,LIBファイルとはどういうファイルなんですか
プロパティページの追加のライブラリィディレクトリの項目にそれらが入っている場所
が指定されていたんですが それらを開けなくて困ってます
- 54 :11/11/20
- 【開発環境】
Visual studio 2008 pro
Windowsフォームアプリケーション
【やりたいこと】
ソフト起動時から、ボタンを押した時点までの時間を表示するプログラムを作りたい
【ソース】
#include <windows.h>
#include <mmsystem.h>
#pragma comment (lib, "winmm.lib")
#include <time.h>
(中略)
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
DWORD start;
start = timeGetTime();
}
private: System::Void button13_Click(System::Object^ sender, System::EventArgs^ e) {
DWORD end;
end = timeGetTime();
MessageBox::Show(String::Format("{0}msです。",end - start));
【出力】
'start' : 定義されていない識別子です。
Loadで宣言した関数が定義されてないと言われるのを解消したいんですけどどうすればいいですか?
- 55 :11/11/20
- startをグローバル変数にしろ
- 56 :11/11/20
- >>55
できました!ありがとうございます。
- 57 :11/11/20
- 開発環境:VS2008
種類:DLL
ref classに配列を定義する場合、
staticとして定義したものと同様に扱えて(以前の内容を保持して)、
かつ、各インスタンスからは独立するようにするのはどうしたらいいのでしょうか?
- 58 :11/11/20
- つい先日2010Expressを導入しました。
ベターCとして使っています。
一度作った構造体にメンバを追加したのですが、デバッガでステップを
追うと、どうもメンバが更新前の古いままのようです。
キャッシュが効いているという事でしょうか?
そのキャッシュは、どこで手動更新出来るのでしょうか?
- 59 :11/11/20
- >>53
そんなもん、自分で調べろよ。いや、本当に。
http://www.google.co.jp/#sclient=psy-ab&hl=ja&source=hp&q=vc+.pdb&pbx=1&oq=vc+.pdb&aq=f&aqi=g-C2&aql=&gs_sm=e&gs_upl=11418l11721l1l12597l3l3l0l0l0l2l174l497l0.3l3l0&bav=on.2,or.r_gc.r_pw.,cf.osb&fp=775e48388cd17464&biw=1642&bih=812
http://www.google.co.jp/#sclient=psy-ab&hl=ja&source=hp&q=vc+.lib&pbx=1&oq=vc+.lib&aq=f&aqi=g1g-C3&aql=&gs_sm=e&gs_upl=13554l14989l2l15321l6l6l0l0l0l0l207l795l2.3.1l6l0&bav=on.2,or.r_gc.r_pw.,cf.osb&fp=775e48388cd17464&biw=1642&bih=812
>>57
それが何やるクラスなのかわかんないからアレだけど、
その配列を保持するのを独立させてシングルトンにしてみたら?
で、各クラスはそれを参照するようにするとか。
>>58
一度、クリーンするとか debug/release フォルダを削除してからしてリビルドしてみてもそうなる?
たぶん古い情報が .pdb かなにかに残ってるんじゃね。
- 60 :11/11/20
- >>57
public:
static array<T>^ arr = gcnew array<T>(N){...};
- 61 :11/11/20
- >>59
クリーンすると言うのはどういう事でしょうか?
ディレクトリ削除、これは私にもすぐ理解出来たので、同じ問題が
出たらやってみようと思います。
で私は、問題の出た周辺に意味のない代入式を色々置いたり
メンバの変数名を変えたりして、無理やりねじ伏せました。
お答え有り難うございました。
#と言うか、よく起きる事なのでしょうか。
- 62 :11/11/20
- >>61
>クリーン
オブジェクトファイル等の中間生成物や、exeファイル等を
削除する。
手作業ではなくて、ビルドメニューにそういうのがある。
- 63 :11/11/21
- >>62
ビルドと言うメニュー自体ないのですが・・・と思ったら、
上級者設定にしたら出現しました。
なるほど。
しかし、今度はデバッグ中に構造体のメンバの値が
表示されなくなりました。先頭アドレスのみ表示されて。
慌てて基本設定に戻しましたが復元せず。
どこをいじれば良いのでしょうか。
- 64 :11/11/22
- どーしてもなおんなかったら、再現する最小構成をどっかに晒せや。
- 65 :11/11/26
- age
- 66 :11/11/29
- 完全初心者なのにヘッドマウントディスプレイを使って3D空間を見渡せるプログラムを作ってみたいと思い、
先日勢いでVR920というセンサー付きのヘッドマウントディスプレイを購入しました。
公式サイトhttp://www.vuzix.com/_jp/support_downloads_drivers.html
からSDKをDLしてHelloTracker3というサンプルを参考に頭の向きや角度の数値を取得する最低限のコードを模索しようとしていた所
そもそも公式のHelloTracker3がコンパイル出来ず
1>cl : コマンド ライン warning D9035 : オプション 'Wp64' の使用は現在推奨されていません。今後のバージョンからは削除されます。
1>stdafx.cpp
1>c:\program files\vuzix corporation\vuzixsdk\examples\hellotracker3\stdafx.h(34) : fatal error C1083: include ファイルを開けません。'afxwin.h': No such file or directory
1>ビルドログは "file://c:\Program Files\Vuzix Corporation\VuzixSDK\examples\HelloTracker3\Debug\BuildLog.htm" に保存されました。
1>HelloTracker3 - エラー 1、警告 1
========== すべてリビルド: 0 正常終了、1 失敗、0 スキップ ==========
というエラーが表示され完全に出鼻をくじかれてしまいました。
調べてみた結果MFCというものを利用しているのでExpress2008では開発出来なさそうという事実に行き着いてしまったのですが
やはり上記のようなセンサーからの数値取得はExpress2008では無理でしょうか?
- 67 :11/11/29
- GUIの部分に使ってるだけだろうから
無くてもいけるだろうけど
visualStudioのprofessional買った方が早い気がするな
- 68 :11/11/29
- >>67
早速の返信ありがとうございます!
やはり購入したほうがスムーズなんですね・・・
下調べが足りずに買ってしまった自分がバカだったんですけどこれ以上は資金的な余裕が・・・
MFCとやらがGUIだけに使われていてセンサーからの数値取得自体には必要とされていなければ気合でなんとかなりますでしょうか
- 69 :11/11/29
- ここにソース貼るかリンクすれば
ネトウヨさんがMFCなしで動くように治してくれるよ
- 70 :11/11/29
- >>69
申し訳ありません・・・自力では目的達成が可能なのか不可能なのかもわからないレベルでお恥ずかしい限りです。
サンプルプログラムのフォルダをzip形式にしてUPしてみました。
http://www.dotup.org/uploda/www.dotup.org2320354.zip.html
- 71 :11/11/29
- SDKとにらめっこすればいけるんじゃね
- 72 :11/11/29
- >>71
ほんのちょっとかじった程度でいきなりこの挑戦は思い上がりすぎだったかもしれないと反省している所ですorz
一応見渡すための3D空間とカメラ等はDXライブラリのサンプルを参考に作ってあるので、
頭の角度の数値さえ取得できればあとはなんとか自力で・・・という所です。
あきらめず自分なりにもにらめっこ挑戦してみます。
- 73 :11/11/29
- 環境:VC++2010
int* ptr = nullptr;
ってメインスレッドでして、サブスレッド内で
ptr = new int[10];
としてすぐにサブスレッドは終了。確実に終了したことを確認した上で
メインスレッドで
delete[] ptr;
とやりました。
で、#include <crtdbg.h> を使ったところ、ptrは解放されてない、
とメモリリークが検出されました。
スレッドをまたぐメモリ確保はやっちゃだめでしょうか?
それとも単にcrtdbgが解放を検出できてないだけでしょうか?
- 74 :11/11/29
- スマポ使ったらメモリリーク無し、と出たので間違いなく自分のコードが
どこかおかしいことがわかりました。ということで無視してください。
- 75 :11/11/29
- #include <crtdbg.h>
#ifdef _DEBUG
#define _CRTDBG_MAP_ALLOC
#define new ::new( _NORMAL_BLOCK, __FILE__, __LINE__ )
#endif // _DEBUG
#include <Windows.h>
#include <process.h>
unsigned int WINAPI thread(void *p) {
int* &pp = *(int**)p;
pp = new int [ 100];
_endthreadex(0);
return 0;
}
int main()
{
int *p;
HANDLE hThread;
hThread = (HANDLE)_beginthreadex(NULL, 0, thread, (void*)&p, 0, NULL);
WaitForSingleObject(hThread, INFINITE);
CloseHandle(hThread);
delete [] p;
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
return 0;
}
リークしないなぁ
- 76 :11/11/30
- >>74
- 77 :11/12/01
- >>76
- 78 :11/12/01
- >>77
- 79 :11/12/01
- ぬるぽ
- 80 :11/12/01
- がっ
- 81 :11/12/04
- 環境
Windows Vista SP2 32bit
Visual C++ 2010 Express
こちらにあるようにWinHttpRequestを使用したいと思いました。
http://msdn.microsoft.com/en-us/library/windows/desktop/aa384045(v=vs.85).aspx
デバッグしようとしたところ下記のエラーが出て対応をしました。
・error C2872: 'IServiceProvider' : あいまいなシンボルです。
"using namespace System;" と "#include <windows.h>"
を同じ名前空間に記述することが問題だとなってましたので
"using namespace System;"をコメントアウト
・error C2653: 'WinHttp' : 識別子がクラス名でも名前空間名でもありません。
#import "winhttp.dll" named_guids
と記述してGUID型のCLSIDやIIDの定義が生成しなくてはならないとありましたので
記載
コードは次レスです。
- 82 :11/12/04
- #include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <objbase.h>
#pragma comment(lib, "ole32.lib")
#pragma comment(lib, "oleaut32.lib")
#import "winhttp.dll" named_guids
//using namespace System;
// IID for IWinHttpRequest.
const IID IID_IWinHttpRequest = {
0x06f29373,
0x5c5a,
0x4b54,
{0xb0, 0x25, 0x6e, 0xf1, 0xbf, 0x8a, 0xbf, 0x0e}
};
int main(array<System::String ^> ^args){
HRESULT hr;
hr = CoInitialize(NULL);
WinHttp::IWinHttpRequest * pIWinHttpRequest = NULL;
CLSID clsid;
hr = CLSIDFromProgID(L"WinHttp.WinHttpRequest.5.1", &clsid);
if (SUCCEEDED(hr)){
hr = CoCreateInstance(clsid,NULL,CLSCTX_INPROC_SERVER,IID_IWinHttpRequest,(void **)&pIWinHttpRequest);
}
CoUninitialize();
return 0;
}
- 83 :11/12/04
- >>80で忘れていましたが、
プロジェクト作成時のテンプレートは
「CLRコンソールアプリケーション」です。
CoCreateInstance呼び出しで
HRESULTのhrが【0x80004002】になってしまいます。
インターフェースがわからない??
お願いします。助けて下さい。
- 84 :11/12/04
- COMじゃない方使えよ
- 85 :11/12/04
- 馬鹿には無理
- 86 :11/12/04
- お願いします。age
- 87 :11/12/04
- ほぼ同じ環境で上のコードをコピペしてやってみたが、ふつーに通ったぞ。
なにか必要なライブラリかなにかが入ってないんじゃねーの?
- 88 :11/12/05
- >>87
ありがとう。そして少し聞きたい。プログラムで取得できたCLSIDとレジストリに設定されているProgID、WinHttp5.1の数値が違うのだが、
あなたは一緒でしょうか?
自分はプログラムで取得したCLSIDは「00389130-0000-0000-54EF-1C00F036C15D」でした。
hr = CLSIDFromProgID(L"WinHttp.WinHttpRequest.5.1", &clsid);
- clsid {00389130-0000-0000-54EF-1C00F036C15D} _GUID
以下レジストリをWinHTTP.dllで検索しました
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\CLSID\{2087c2f4-2cef-4953-a8ab-66779b670495}]
@="WinHttpRequest Component version 5.1"
[HKEY_CLASSES_ROOT\CLSID\{2087c2f4-2cef-4953-a8ab-66779b670495}\InProcServer32]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,77,00,69,00,\
6e,00,68,00,74,00,74,00,70,00,2e,00,64,00,6c,00,6c,00,00,00
"ThreadingModel"="Apartment"
[HKEY_CLASSES_ROOT\CLSID\{2087c2f4-2cef-4953-a8ab-66779b670495}\ProgID]
@="WinHttp.WinHttpRequest.5.1" ←◆ここです!!
[HKEY_CLASSES_ROOT\CLSID\{2087c2f4-2cef-4953-a8ab-66779b670495}\TypeLib]
@="{662901fc-6951-4854-9eb2-d9a2570f2b2e}"
[HKEY_CLASSES_ROOT\CLSID\{2087c2f4-2cef-4953-a8ab-66779b670495}\Version]
@="5.1"
- 89 :11/12/05
- ちなみに最近WindowsUpdateに失敗します。
- 90 :11/12/05
- C#を1年くらいしかやったことないんだけど、
今からC++のWin32を勉強始めても何か役に立ちますかね?
C#ってやっぱり重いし、デザインもモッサリしてるし、
ネイティブなC++のほうが難しそうだけど良いのかな?と思いました。
でも時代は64bitだし、VS2010EEでできるのはWin32ですよね。
- 91 :11/12/05
- IDEにEE使ってもx64バイナリを吐かせることはできる
- 92 :11/12/05
- >>88
プログラムでの CLSID の取り方なんて忘れたよ。w
コードの clsid の中身を並べてみたけど、これで良かったんだっけか?
[プログラムコードから取得したID]
2087c2f4-2cef-4953-a8ab-66779b670495
[レジストリの値]
[HKEY_CLASSES_ROOT\CLSID\{2087c2f4-2cef-4953-a8ab-66779b670495}\ProgID]
ProgID = WinHttp.WinHttpRequest.5.1
TypeLib = {662901fc-6951-4854-9eb2-d9a2570f2b2e}
Version = 5.1
‥‥ ::CLSIDFromProgID() で取得した値はレジストリの CLSID の下のノードの名前?みたいだな。おまえのも一緒だし。
- 93 :11/12/05
- >>90
C++ を自在に操れるレベルになれば、他の言語なんか怖くない。
でも大抵は C# で事足りる。十分すぎるくらい。しかも凄く簡単、ってか楽。
どこまでやるかによる。
- 94 :11/12/05
- >>92
いえ、
私は00389130-0000-0000-54EF-1C00F036C15Dです。
今.netframework4アンイントールができなくて困ってます(T_T)
これやったり
regsvr32 Softpub.dll /s
regsvr32 Wintrust.dll /s
regsvr32 Initpki.dll /s
regsvr32 Mssip32.dll /s
HotFixかけたり
修復したり
復元したり
(T_T)なみだ(T_T)なみだ
- 95 :11/12/05
- まあなんだ。頑張れ。w
逆にインストールしたら欠けてた部分が補完されて正常に、なんて都合のいいことはないか。
- 96 :11/12/05
- 0x800B010B こいつなんとかし netFx_core.mzz のセキュリティ検証で落ちるぞ
- 97 :11/12/06
- これさー これやん
IID_IWinHttpRequest
- 98 :11/12/06
- 事故解決しました
感謝
http://www.sol.dti.ne.jp/~yoshinor/ni/ni0002.html
http://moz-addon.g.hatena.ne.jp/ZIGOROu/20071015/1192454217
http://www.vector.co.jp/soft/dl/win95/prog/se359660.html
趣味プログラミングは敷居が高いですね><
- 99 :11/12/06
- >>93
レスありがとうございます。
やはり細かなところまで要求するとC++なんですよね。
でも大概はC#で事足りる。プログラミング歴1年の僕にでも「とりあえず」出来てしまいましたから。
C++も新規格が出たようですし、今から勉強始めても損は無さそうですね。
- 100read 1read
- 1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▲
【最速】google guice DI Framework【シンプル】 (407)
【Java】DIコンテナって本当に便利か? (453)
C/C++の宿題片付けます 156代目 (769)
C言語なら俺に聞け(入門編)Part 99 (1001)
オブジェクト指向は本当に正しいのか? (234)
メガデモを語る fr-08 (603)
--log9.info------------------
ACE COMBAT エースコンバット総合スレ Mission580 (438)
アルカディアのハイスコア集計について その2 (392)
高橋名人はアンチCAVE (323)
【歯ガタガタ】DXP-ルンペラー吉田屋 2【在日浮浪者】 (306)
サンダーフォース・シリーズ総合スレ 2 (490)
ケツイ 絆地獄たち [97] (870)
下手の横好きシューティング8 (948)
【帝都】アインハンダーstage.21【侵攻】 (328)
モンゴル語だったら何が悪い! (762)
バイド&バクテリアン&ベルサー (417)
【4th】RaidersSphete/EFFY 14th【製作中】 (824)
G-わんげ鳩大往生XII〜絆ダウン〜終章〜 (810)
おい、シューティングゲームサイドどーよ? (759)
オプション ヾ(o゚ω゚o)ノ゙ プニプニ!プニプニ! 13 (663)
オトメディウスは何故失敗したのか Part11 (135)
グラディウスのスレが乱立しすぎな件について (123)
--log55.com------------------
【OKA】沖縄・那覇空港 その21【ROAH】
【航路】Flightradar24【軌跡】15
【スターフライヤー】北九州空港11【ANA Cargo】
【NRT】成田国際空港 65タミ【RJAA】
【JAL】50000FOP修行スレJL75便【JGC】
【Jetstar】ジェットスター・ジャパンGK107便
【UKB】神戸空港/マリンエア-38@airline【RJBE】
【ANA】全日空スレNH100便【SFC】
-