質問 1.
コンパイル時
warning C4793: *******ネイティブ関数としてコンパイルされました:
非 clrcall 仮想呼び出しサンクは、ネイティブとしてコンパイルする必要があります
といった警告が数行にわたって出力されます
デバッグして動作に問題ないことはわかっているのでコンパイル時に
煩わしいこのメッセージ出力をさせなくしたいと思い該当コードの前に
#pragma warning(disable: 4793)
を追記したのですが出力が消えません(ソースコード先頭に記載しても変わらず)
どうすれば消せるでしょうか
質問2.
ファイル編集時 関数名などの補完機能(正確な機能の名称がわかりません)
が使えなくなってしまい(ポップアップで候補が表示される機能のことです)
非常に使いにくいのですが再び動作するように直すことはできないでしょうか?
新規でプログラム作るときちんと機能しています
(もともとは機能していましたがいつのまにか動かなくなりました)
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
>否定されるだけでは解決になりません
#1の方は否定してるわけではないと思いますが。
http://oshiete.goo.ne.jp/qa/8238837.html
で私が注意したように「警告をその場しのぎで安易な対処しないように」と注意されてるだけで。
質問文読んだ感じでも #pragma warning(disable: 4793) でしのげてたら、それで済ませてしまいそうですし。
ちなみに私は具体的な対処方法は存じません。
ネイティブコードとマネージドコードの混在はできれば避けたいですし。
なんとなくなら、ネイティブコードでラップ関数作ってPInvoke使うのかなぁと思ってますが。
No.1
- 回答日時:
> コンパイル時
> (中略)
> といった警告が数行にわたって出力されます
> (中略)
> どうすれば消せるでしょうか
おいおい警告を無視するなよ(^_^;
http://msdn.microsoft.com/ja-jp/library/vstudio/ …
を見れば解るのですが、この警告はマネージドコードの中でネイティブコードとしか解釈できないコードが混在していると発生します。
対策としては、
(1)問題の関数をマネージドとしてコンパイルできるように書き換える
(2)プログラム全体をネイティブに書き換え、コンパイル設定をネイティブプログラムを生成するように変更する
のいずれかでしょう(P/Invoke……うっ、頭が……)。
>おいおい警告を無視するなよ(^_^;
回避できる具体的なコードがわかればそうしたいところなんですけどね
今までVC6使ってたのが今回VS2010にいきなり変化したのと サンプルが
コマンドプロンプトでのプログラム
実際はMFC使って.Netの使ってるということで
具体的なコードサンプルが見つからないんですよ
おまけに今回警告が出たCOM使うのも初めて
警告が出ていても動作上の問題がないことは確認ができています
実際にエラーとなるコードは
CComObject<CTestDataWriter2Event>::CreateInstance(&eventSink);
というものなのですが
この部分の問題だけなのですが対処を考えると(1)が望ましいと思って
いろいろ試行錯誤したのですが情報も得られず左折したというところです
どういった変更すればいいかわかりますか?
否定されるだけでは解決になりません
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# スタックフレームの消滅 6 2023/05/20 12:33
- C言語・C++・C# Cのコンパイルでコメントアウトをそのままオブジェクトに保持したい 7 2023/08/01 22:22
- Excel(エクセル) vba コンパイル 4 2022/10/27 10:01
- その他(プログラミング・Web制作) Pythonを用いたフラッシュ暗算ソフトの開発に必要なもの 2 2023/01/29 02:22
- メルカリ <メルカリShops>消費者庁による販売許可の出ている機能性表示食品?の調べ方から 1 2022/11/24 17:46
- その他(プログラミング・Web制作) マウスオーバー→ホイール回転でスクロールできない 2 2022/10/31 10:06
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- システム 古いWEBシステム。もう追加プログラムは作れない? それともできる? 6 2022/06/08 13:41
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アプリケーションのDLLファイル...
-
<unistd.h>をVisualStudioでつ...
-
math.hに含まれる関数が使えない
-
実行後にコンパイルに失敗しま...
-
C言語をコンパイルするとコンピ...
-
<math.h>ヘッダを入力している...
-
シリアル通信の受信待ちについて
-
グラフィックス
-
gcc コンパイル killed
-
c言語です コンパイルした時に...
-
変数宣言(Dim)と定数宣言(Const...
-
Verilog_HDLでのdefineとifdef
-
コマンドプロンプトの使い方
-
cygwinのgccで正常にコンパイル...
-
printf()関数の括弧を二重にし...
-
gcc バージョン違いによるコン...
-
python エラー
-
エクセルのエラーメッセージ「4...
-
<math.h>があるのにsqrtが・...
-
fortranでプログラムを実行する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<unistd.h>をVisualStudioでつ...
-
アプリケーションのDLLファイル...
-
共有ライブラリの内容確認について
-
シリアル通信の受信待ちについて
-
C#で char型とstring型の比較で...
-
64ビットのlinuxで32ビットメモ...
-
Verilog_HDLでのdefineとifdef
-
math.hに含まれる関数が使えない
-
自作DLLの中身を暗号化
-
C言語で作ったらWindowsでもMac...
-
実行後にコンパイルに失敗しま...
-
lhafileをインストールしたい
-
c言語です コンパイルした時に...
-
ビープ音が鳴りません・・・
-
すべてのリビルド: 0 正常、 0 ...
-
gcc バージョン違いによるコン...
-
Cのコンパイルでコメントアウト...
-
CLRアプリと通常のアプリとの違い
-
「インクルードファイル 'pthre...
-
MVSマシンで0C7でABENDしたので...
おすすめ情報