問題タブ [visual-c++-2008]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
517 参照

c++ - AccessのフロントエンドとしてのVisualC++ 2008

私はC++でコーディングする必要があるデータベースプロジェクトに取り組んでいます。MicrosoftAccessを使用して構築されたリレーショナルデータベースのフレームワークがあります。ユーザー用のGUIが欲しいので、Visual C++2008を使用してGUIを構築しようとしています。

私はwin32コンソールアプリ、MFCアプリ、CLRアプリとしてソリューションを構築しようとしましたが、それぞれがさまざまなエラーで停止しました。

私は助けを求めてウェブを精査しましたが、役に立ちませんでした。誰かが私にいくつかの方向性、またはもっと良いことに、良いチュートリアルへのリンクを与えることができれば、それは大いにありがたいです。

ベン

0 投票する
3 に答える
5529 参照

visual-studio - VC++ コンパイラのバージョンに応じた条件付きコンパイル

VC++ プロジェクトを Visual Studio 2005 (VC8) から Visual Studio 2008 (VC9) に移行中です。ソリューションの一部のプロジェクトでは、プロジェクト設定の [追加のライブラリ ディレクトリ] フィールドにサード パーティ ライブラリへのパスが含まれています。パスは次のようになります:
..\SomeLibrary\Lib\vc9\x86

$(ConfigurationName) を使用して "Debug" または "Release" を置き換えるのとほぼ同じ方法で、Visual Studio の "Property Page Macros" の 1 つを使用してコンパイラ バージョンを置き換えることができれば、非常に便利です。次のようなものが最適です:
..\SomeLibrary\Lib\ $(CompilerVersion) \x86

残念ながら、適切なマクロが見つかりません。

「マクロ」と言うときは、C/C++ プリプロセッサ マクロではなく、Visual Studio の「プロパティ ページ マクロ」を指していることに注意してください。私の知る限り、プロジェクト設定でプリプロセッサ ディレクティブを使用することはできません。

これを行う方法を知っている人はいますか?

0 投票する
2 に答える
1091 参照

com - def ファイルと extern "C" による名前マングリング

基本的な COM コンポーネントを作成しているので、それらの作成を練習できます。

PRIVATE キーワードを使用して、.def ファイルから DllRegisterServer、DllUnregisterServer、DllGetClassObject、および DllCanUnloadNow をエクスポートしています (Microsoft では必要だと思います)。

とにかく、extern "C" で 4 つの関数すべてを指定しましたが、まだマングリングが発生しています。これが私の.defです:

これはdumpbin /EXPORTSからのマングリングです

extern "C" が役立つことは知っています。なぜなら、extern "C" を使用しないとマングリングが非常に悪くなるためです。

私のコンパイラは VC++ Express 2008 です。リンカー コマンド ライン:

/OUT:"G:\Programming\COM\BasicMathCOM\BasicMath\Release\BasicMath.dll" /INCREMENTAL:NO /NOLOGO /DLL /MANIFEST /MANIFESTFILE:"Release\BasicMath.dll.intermediate.manifest" /MANIFESTUAC:"レベル='asInvoker' uiAccess='false'" /DEBUG /PDB:"g:\Programming\COM\BasicMathCOM\BasicMath\Release\BasicMath.pdb" /SUBSYSTEM:WINDOWS /OPT:REF /OPT:ICF /LTCG /DYNAMICBASE / NXCOMPAT /MACHINE:X86 /ERRORREPORT:PROMPT kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib

+/DEF:BasicMath.def、追加オプションの下に追加しました。

0 投票する
3 に答える
1100 参照

visual-c++-2008 - サブプロセスのコンソールウィンドウを非表示にする方法は?

既存の実行可能ファイルを置き換える非常に単純なプログラムを作成しようとしています。引数を少し変えて、元のプログラムを新しい引数で実行する必要があります。サードパーティのライブラリによって自動的かつサイレントに呼び出されるはずです。

正常に実行されますが、コンソール ウィンドウがポップアップして、呼び出されたプログラムの出力が表示されます。そのコンソール ウィンドウが表示されないようにする必要があります。プログラムの出力は気にしません。

私の最初の試みはコンソール アプリケーションとして設定されていたので、同じことを行う新しい Windows GUI アプリを作成することでこれを修正できると考えました。しかし、それでもコンソールがポップアップします。元のコマンドはコンソール アプリケーションとしてマークされていると想定しているため、Windows は自動的に実行するコンソール ウィンドウを提供します。念のため、元の _exec() への呼び出しを system() への呼び出しに置き換えてみました。助け無し。

このコンソール ウィンドウを非表示にする方法を知っている人はいますか?

これが私のコードです:

0 投票する
1 に答える
111 参照

visual-studio-2008 - 他のマシンではなく、1 つのマシンで vc9 エラー 4430

2 つの異なるマシンで同じコードをコンパイルする。CPP ファイルで明示的に定義されていない int 関数があります。

1 台のマシンは正常にコンパイルされ、もう 1 台はコンパイルされません。本当に奇妙なのは、両方とも昨日まで正常に機能していたことです。マシンの 1 つは Visual Studio のインクルード パスとリンク パスを失い、現在はコンパイルがかなり煩雑になっています。

何を探すべきですか?

前もって感謝します。

0 投票する
4 に答える
1449 参照

mfc - コンパイル時エラー C4407

コードには次のクラス構造があります

クラス A の実装には、次のものがあります。

Base1 と Base2 は、CDialog またはその他の MFC クラスから継承されないことに注意してください。

VC6 では、コンパイルは成功しています。しかし、VC9 では次のエラー コードが表示されます。

エラー C4407: メンバー表現への異なるポインター間でキャストすると、コンパイラーは正しくないコードを生成する可能性があります

このエラー コードは、ON_WM_SIZE の場所を指しています。

誰でも解決策を教えてもらえますか。前もって感謝します。

ゲーマー

0 投票する
6 に答える
4901 参照

c++ - VS2008: 異なるフォルダーに同じ名前の 2 つの CPP ファイルがあるプロジェクトをビルドできますか?

ここに私のフォルダ構造があります:

プロジェクトをビルドすると、一部のシンボルが定義されていないというリンク エラー (LNK2028: 未解決のトークンなど) が表示されます。すべてのシンボルが定義されていること、および宣言されたすべての関数に対応する定義があることを確認しました。

utility.cppプロジェクトをコンパイルすると、両方のフォルダーのファイルがutility.obj出力フォルダーで同じものにコンパイルされるような気がします。その結果、一方が他方を上書きします。

  1. これは予想される動作ですか?
  2. 同じ名前の 2 つのファイル (異なるフォルダーにあります) を持つ C++ バイナリをビルドするにはどうすればよいですか?
0 投票する
0 に答える
659 参照

visual-c++-2008 - Visual C++ 2008 - [追加のインクルード ディレクトリ] ダイアログが空です

Visual C++ 2008 で非常に奇妙な問題が発生しています。特定のプロジェクトで、[追加のインクルード ディレクトリ] ダイアログ ボックスを適切に開くことができなくなりました。代わりに、リスト自体がなく、「マクロ」ボタンが機能しない次のウィンドウが表示されます。「追加のインクルードディレクトリ」フィールドに何が含まれていても、空であっても、常にこれを取得します。

ダイアログ

すでに問題に遭遇しましたか? どうすればこれを修正できますか?

0 投票する
3 に答える
2280 参照

c++ - std::stringコンストラクタで破損したイテレータリスト

VS2005 SP1のデバッグ構成でコンパイルされた以下のコードは、「ITERATORLISTCORRUPTED」通知を含む2つのメッセージを示しています。

コードスニペット

コンパイラまたは標準ライブラリのバグですか?

0 投票する
2 に答える
658 参照

c - extern "C" has no effect in msvc++ 9.0

I manage project for JNI for both compilers: MSVC++ 8.0 and 9.0, my cpp file contains following implementation: extern "C" { JNIEXPORT jlong JNICALL Java_context_ServiceProviderContext_StartServiceProvider (JNIEnv * env, jclass, jstring jspath){ ..... }

With help of depends.exe utility I can see that MSVC 8.0 successfully exports function as it is expected: Java_context_ServiceProviderContext_StartServiceProvider But compiling under MSVC 9.0 gets me crazy it exports like ignoring extern "C" at all. depends.exe shows me: _Java_context_ServiceProviderContext_StartServiceProvider@12

Does anybody know what exactly in 9.0 project that causes this behavior?