問題タブ [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.
c++ - AccessのフロントエンドとしてのVisualC++ 2008
私はC++でコーディングする必要があるデータベースプロジェクトに取り組んでいます。MicrosoftAccessを使用して構築されたリレーショナルデータベースのフレームワークがあります。ユーザー用のGUIが欲しいので、Visual C++2008を使用してGUIを構築しようとしています。
私はwin32コンソールアプリ、MFCアプリ、CLRアプリとしてソリューションを構築しようとしましたが、それぞれがさまざまなエラーで停止しました。
私は助けを求めてウェブを精査しましたが、役に立ちませんでした。誰かが私にいくつかの方向性、またはもっと良いことに、良いチュートリアルへのリンクを与えることができれば、それは大いにありがたいです。
ベン
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 の「プロパティ ページ マクロ」を指していることに注意してください。私の知る限り、プロジェクト設定でプリプロセッサ ディレクティブを使用することはできません。
これを行う方法を知っている人はいますか?
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、追加オプションの下に追加しました。
visual-c++-2008 - サブプロセスのコンソールウィンドウを非表示にする方法は?
既存の実行可能ファイルを置き換える非常に単純なプログラムを作成しようとしています。引数を少し変えて、元のプログラムを新しい引数で実行する必要があります。サードパーティのライブラリによって自動的かつサイレントに呼び出されるはずです。
正常に実行されますが、コンソール ウィンドウがポップアップして、呼び出されたプログラムの出力が表示されます。そのコンソール ウィンドウが表示されないようにする必要があります。プログラムの出力は気にしません。
私の最初の試みはコンソール アプリケーションとして設定されていたので、同じことを行う新しい Windows GUI アプリを作成することでこれを修正できると考えました。しかし、それでもコンソールがポップアップします。元のコマンドはコンソール アプリケーションとしてマークされていると想定しているため、Windows は自動的に実行するコンソール ウィンドウを提供します。念のため、元の _exec() への呼び出しを system() への呼び出しに置き換えてみました。助け無し。
このコンソール ウィンドウを非表示にする方法を知っている人はいますか?
これが私のコードです:
visual-studio-2008 - 他のマシンではなく、1 つのマシンで vc9 エラー 4430
2 つの異なるマシンで同じコードをコンパイルする。CPP ファイルで明示的に定義されていない int 関数があります。
1 台のマシンは正常にコンパイルされ、もう 1 台はコンパイルされません。本当に奇妙なのは、両方とも昨日まで正常に機能していたことです。マシンの 1 つは Visual Studio のインクルード パスとリンク パスを失い、現在はコンパイルがかなり煩雑になっています。
何を探すべきですか?
前もって感謝します。
mfc - コンパイル時エラー C4407
コードには次のクラス構造があります
クラス A の実装には、次のものがあります。
Base1 と Base2 は、CDialog またはその他の MFC クラスから継承されないことに注意してください。
VC6 では、コンパイルは成功しています。しかし、VC9 では次のエラー コードが表示されます。
エラー C4407: メンバー表現への異なるポインター間でキャストすると、コンパイラーは正しくないコードを生成する可能性があります。
このエラー コードは、ON_WM_SIZE の場所を指しています。
誰でも解決策を教えてもらえますか。前もって感謝します。
ゲーマー
c++ - VS2008: 異なるフォルダーに同じ名前の 2 つの CPP ファイルがあるプロジェクトをビルドできますか?
ここに私のフォルダ構造があります:
プロジェクトをビルドすると、一部のシンボルが定義されていないというリンク エラー (LNK2028: 未解決のトークンなど) が表示されます。すべてのシンボルが定義されていること、および宣言されたすべての関数に対応する定義があることを確認しました。
utility.cpp
プロジェクトをコンパイルすると、両方のフォルダーのファイルがutility.obj
出力フォルダーで同じものにコンパイルされるような気がします。その結果、一方が他方を上書きします。
- これは予想される動作ですか?
- 同じ名前の 2 つのファイル (異なるフォルダーにあります) を持つ C++ バイナリをビルドするにはどうすればよいですか?
c++ - std::stringコンストラクタで破損したイテレータリスト
VS2005 SP1のデバッグ構成でコンパイルされた以下のコードは、「ITERATORLISTCORRUPTED」通知を含む2つのメッセージを示しています。
コードスニペット
コンパイラまたは標準ライブラリのバグですか?
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?