3

VC ++ 2010で非常に単純なxllファイルを作成しましたが、使用しているExcelはExcel2007です。ライブラリには次の1つの関数しか含まれていません。

extern "C" LPXLOPER12 WINAPI tsMkErr() {
    static XLOPER12 x;
    x.xltype = xltypeErr;
    x.val.err = xlerrNull;
    return &x;
}

および必要なxlAutoOpen関数。dllファイルをコンパイルし、名前をxllに変更し、ダブルクリックしてExcelで開きます。すべてが期待どおりに機能します。

ただし、このファイルを別のPCで開こうとすると、Excelは次のように通知し続けます。

開こうとしているファイル「.xll」は、ファイル拡張子で指定されている形式とは異なる形式です。ファイルを開く前に、ファイルが破損しておらず、信頼できるソースからのものであることを確認してください。今すぐファイルを開きますか?

[はい]をクリックすると、ゴミが飛び出します。

また、アドインマネージャを介してロードしようとしました。この場合、ファイルを開くことはできますが、関数tsMkErr()が見つかりません。

私はすべての提案に感謝します...

ところで、私は答えとして返信を選択する方法を本当に知りません。あなたがそれを行う方法を知っているなら、私にも知らせてください:)

...今週ツールを公開する予定です...今は自分のPCでしか機能しないことに気づきました...助けてください...T_T

4

4 に答える 4

2

主な理由は次のとおりです。

  1. 間違ったアーキテクチャで xll を開こうとしています (例: Excel 64 ビットの 32 ビット xll)

  2. 一部の外部 dll が欠落しています (Dependency Walker ツールを参照) デバッグ モードでビルドしていて、Visual Studio を介してそれを開こうとすると、環境パス変数が使用できず、xll にいくつかの dll が欠落している可能性があることに注意してください。

于 2015-10-15T00:20:45.713 に答える
1

考えられる理由は、依存関係 (crt dll など) の欠落である可能性があります。Dependency Walker ツールを使用して確認できます。

于 2014-04-25T08:24:15.643 に答える
1

http://xll.codeplex.comを使用してください。

于 2013-02-08T00:36:41.210 に答える
0

デバッグモードでソリューションをビルドしているようです。デバッグ モードでソリューションをビルドする場合、ビジュアル スタジオは、別のコンピューターにほとんどインストールされないデバッグ ライブラリに xll をリンクします。したがって、ビルド構成をリリースに設定してください。他のコンピューターでも動作するはずです (通常の ms c++ 再頒布可能ライブラリがインストールされている場合)。

于 2016-07-01T22:52:03.727 に答える