Re: VC++(CLR)で作成したDLLがMagicから認識されない
Quantum
投稿数: 3
ご返信いただきありがとうございます。
自己解決いたしました。
結論から言うとVisual C++のRuntimeがインストールされていないからでした。
他のいくつかのマシンで実行環境を作ってみたら、うまく動くのもありましたが、とあるマシンにおいて「MSVCR120.dllがありません」旨のメッセージが出て、そこからRuntimeがないのが原因ではないかということになりました。それで最初の問題のマシンにRuntimeをインストールしたら、うまく動くようになりました。
ちなみに、最初の問題のマシンでなぜ「MSVCR120.dllがありません」旨のメッセージが出ないのかは謎のままですが。
たいへんお騒がせしました。
それから、userdll.hやMAGIC_BINDがなくても動くようです。以下にソースを記しておきます。
<Test.h>
#pragma once
using namespace System;
namespace Test {
public ref class Class1
{
// TODO: このクラスの、ユーザーのメソッドをここに追加してください。
};
}
<Test.cpp>
#include "stdafx.h"
#include "Test.h"
// Magicからコールしたい関数
int retnum()
{
return 999;
}
<Test.def>
LIBRARY Test
EXPORTS
retnum
これをビルドしたDLLをCallDLLでコールできました。
以上、ありがとうございます。
自己解決いたしました。
結論から言うとVisual C++のRuntimeがインストールされていないからでした。
他のいくつかのマシンで実行環境を作ってみたら、うまく動くのもありましたが、とあるマシンにおいて「MSVCR120.dllがありません」旨のメッセージが出て、そこからRuntimeがないのが原因ではないかということになりました。それで最初の問題のマシンにRuntimeをインストールしたら、うまく動くようになりました。
ちなみに、最初の問題のマシンでなぜ「MSVCR120.dllがありません」旨のメッセージが出ないのかは謎のままですが。
たいへんお騒がせしました。
それから、userdll.hやMAGIC_BINDがなくても動くようです。以下にソースを記しておきます。
<Test.h>
#pragma once
using namespace System;
namespace Test {
public ref class Class1
{
// TODO: このクラスの、ユーザーのメソッドをここに追加してください。
};
}
<Test.cpp>
#include "stdafx.h"
#include "Test.h"
// Magicからコールしたい関数
int retnum()
{
return 999;
}
<Test.def>
LIBRARY Test
EXPORTS
retnum
これをビルドしたDLLをCallDLLでコールできました。
以上、ありがとうございます。
投票数:0
平均点:0.00
投稿ツリー
-
VC++(CLR)で作成したDLLがMagicから認識されない
(Quantum, 2016-5-19 16:17)
- Re: VC++(CLR)で作成したDLLがMagicから認識されない (ISHIJIMA, 2016-5-19 16:25)
- Re: VC++(CLR)で作成したDLLがMagicから認識されない (null, 2016-5-22 18:47)
-
Re: VC++(CLR)で作成したDLLがMagicから認識されない
(Quantum, 2016-5-23 14:47)
- Re: VC++(CLR)で作成したDLLがMagicから認識されない (null, 2016-5-23 17:46)
- Re: VC++(CLR)で作成したDLLがMagicから認識されない (Quantum, 2016-5-25 10:44)