mfc-ml

2004年08月

31

[mfc 49650] Re: [mfc 49649] Re: オートメーションサーバでクライアントを落とすとサーバも落ちてしまいます

社本様、本当にいつもありがとうございます。

> まずは、クライアントの呼び出しが間違っていないかどうかを
> 調べるために、EXCELか何かを呼び出してみたほうがいいと思います。
> クライアント側のVB.NETのコードが間違っていないことを
> 確認できれば、サーバ側のデバッグに専念できるでしょうし。

> クライアント側のコードが間違っていないことが確認できた後、
> 新規でアプリケーションウィザードでオートメーションを有効に
> したサーバのサンプルを作成して確認すればいいかと思います。

EXCELを呼び出してみたところ正常に動作しました。
やはりサーバ側のようです。

そこで、サーバに追加したコードが非常にシンプルでしたので、ウィザードを
いろいろ変更して試していたところ、『複合ドキュメント サポート』の
フルサーバにチェックを入れた場合にGetObjectメソッドが正常動作しました。
31

[mfc 49649] Re: オートメーションサーバでクライアントを落とすとサーバも落ちてしまいます


社本@ワックです。

> 11.GetObjectメソッドのためのサンプルを2つ作成
>  (A,Bともに上記のアラートが表示される)
>  A.
>   Dim obj As Object
>   obj = GetObject("c:\AMTest\AMTest\Debug\AMTest.exe")
>   Dim msg As String = obj.GetMessage()
>  B.
>   Dim obj As Object
>   obj = GetObject("c:\Sample.mat")
>   Dim msg As String = obj.GetMessage()

Aは間違っています。Bでいいハズです。
Bでエラーになる理由は、これだけだと分かりませんが、
きっと、サーバのコードがおかしいんでしょうね。

まずは、クライアントの呼び出しが間違っていないかどうかを
調べるために、EXCELか何かを呼び出してみたほうがいいと思います。
クライアント側のVB.NETのコードが間違っていないことを
確認できれば、サーバ側のデバッグに専念できるでしょうし。

クライアント側のコードが間違っていないことが確認できた後、
新規でアプリケーションウィザードでオートメーションを有効に
したサーバのサンプルを作成して確認すればいいかと思います。


// 社本 明弘
// http://www.wac-jp.com/programmers/
// Microsoft MVP for VC++ (Oct 2003 - Oct 2004)
31

[mfc 49648] Re: [mfc 49640] Re: オートメーションサーバでクライアントを落とすとサーバも落ちてしまいます

社本様

社本様

ご返答ありがとうございます。

> Appウィザードで作成したままのオブジェクトであれば、
> ファイルモニカが使えると思います。
> GetObject()をする時に、ファイル名を渡せばよいかと思います。
GetObjectメソッドは以前から気になってはいるのですが、いつも
以下のようなアラートが表示されてしまいます。

'System.Exception' のハンドルされていない例外がmicrosoft.visualbasic.dll で発生しました。
追加情報 : ActiveX コンポーネントを作成できません。

次のような流れでアプリを作っているのですが、何か問題があるのでしょうか。

1.VC7のMFCでAMTestというプロジェクトを作成する。
2.ウィザードで拡張子を例えば、 mat (MFC Automation Test)とする。
3.ProgIDを”AMTest”に変える
4.オートメーションにチェックを入れる。
5.クラスビューのIAMTestインターフォースに引数BSTRの
 GetMessageメソッドを追加する
6.AMTestDoc.cppを開いて、GetMessageメソッド内に
 『strResult = "HelloWorld";』と追加する
7.プロジェクトをビルドする
 (FilePathはc:\AMTest\AMTest\Debug\AMTest.exe とする)
8.AMTest.exeを立ち上げ ファイル/名前をつけて保存 で
 c:\Sample.matとして保存
9.VB.NETでAMCliantTestというプロジェクトを作る
10.次のようなプログラムを作り、VBから呼び出せるかを確かめる
 (動作確認済み)
 Dim obj As Object
 obj = CreateObject("AMTest")
 Dim msg As String = obj.GetMessage()
11.GetObjectメソッドのためのサンプルを2つ作成
 (A,Bともに上記のアラートが表示される)
 A.
  Dim obj As Object
  obj = GetObject("c:\AMTest\AMTest\Debug\AMTest.exe")
  Dim msg As String = obj.GetMessage()
 B.
  Dim obj As Object
  obj = GetObject("c:\Sample.mat")
  Dim msg As String = obj.GetMessage()
31

[mfc 49647] Re: Visual SourceSafe についてなのですが…。

どーも、松尾です。

>プロジェクト管理されるソースファイルの中に、UTF-8 など SJIS でない
>文字コードのものがあります。これを管理して相違点を表示すると表示が
>化けてどうも使い物になりません。設定を見ると、改行コードの違いに
>ついてなど、UNIX系ソースの管理も配慮されているようなのですが…。
>
>何か解消方法はないもんでしょうか。あるいは最悪他のソース管理ツール
>に移行…も検討したいんですが、Diff の形式だとぱっと見てよくわから
>ないのが難点で、 SourceSafe のように色分けして相違点を表示できる
>ソース管理ツールをご存じないでしょうか。
>
>#SourceSafe の使い勝手が非常に良いので移行したくはないのですが…。

以前にクロスプラットホーム環境で開発をしている時には、
VSSは使えない(コードの関係で)と言う判断から、CVSを使っていました。
サーバーをUNIX、クライアントをWindowsというシステムの開発でした。
サーバーソースはEUCでクライアントはSJISですね。
WinCVSをクライアント側で使用していましたが、オートマージに問題があって
オートマージをとめてWinMergeを使用するようにしていました。
オートマージがかかると追加行が丸ごと消えたりしてえらい目にあったので。
ソース管理系のソフトのオートマージは変更内容が錯綜すると間違ったマージを
するみたいです。CVSがコンフリクトと判断しなかった時にオートマージを行い
ますが、この結果が間違っている場合があるのです。
VSSのオートマージも過信は禁物のようですけれどね。
この時のCVSのリポジトリはUNIXサーバー側にある構成で、pserverを使った
接続方法を使っていたと思います。
ただ、pserverを使うとリポジトリからの削除がうまく行かなくて
管理者に連絡して消してもらってましたねぇ。
この辺は設定の問題だったのかもしれませんが、私自身は管理者ではなかったの
で深く突っ込んで調査していません。
いずれにせよ、コードが混在する環境ではVSS6は使用すべきでないというのは
他の方と同じ意見です。
30

[mfc 49646] Re:: リンクエラー"mfc42d.lib"について

竹村です。

 toposさん、ビルドすると 'BuildLog.htm' が出来ますのでこの内容をみればいいの
でしょうか?

ところで、何回か元のVC6でビルドしなおして、VC7に変換ビルドしたらリンク
エラーが出なくなりました。
出なくなった原因はわかりませんが・・・・・。

>   画面のどこのメニューだったかは、忘れましたが、VCのプロジェクトファイル
>   って、古来の テキストのメイクファイルに 変換できます。
>   こいつは互換性とかのためですが、そうすると VC 内のプロジェクト
>   ファイルの中身が、みれます。
>
>   あとは、たしか、プロジェクトファイルって 3つ ぐらいだかの拡張子で
>   その中のどれかが、テキスト(xmlでしたっけ??)で覗けるはずです。
>
>   それでですね、よくVCのプロジェクトファイルというのは、変な
>   状態になってる場合があるんです。間違っちゃってるんです。
>   パスだとか、環境だとかが。。。
>   特に開発マシンの構成によっては、というか開発したマシンが
>   変わったりしたり、版数up のときとかに、よくこわれます。

原因不明ですが皆様のアドバイスは今後に活用していきたいと思っています。
いろいろご面倒をおかけしました、これからもよろしくお願いします。
ありがとうございました。

/////////////////////////////////
竹村
t...@jcom.home.ne.jp
/////////////////////////////////
記事検索
Amazon.co.jp
  • ライブドアブログ