質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

3回答

19836閲覧

64ビット版ソフト(C#)からの32ビット版DLLソフトの使い方を教えて下さい

kakine

総合スコア20

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

1グッド

1クリップ

投稿2016/03/08 05:46

以下について知識がない為、
何卒ご教授頂けないでしょうか。

【環境】
・WIN8.1(64bit)
・64Bit版ソフト(C#)
・32Bit版ソフト(C/C++対応)

【やりたいこと】
64Bitソフト(C#)から32Bit版DLLソフト(C/C++対応)を呼出して利用したい。

【困っていること】
知識がない為、恥ずかしながら利用可否自体の判断ができておりません。
仮に利用可として、使い方や注意すべきことなどがあれば
ご教授頂ければと思い投稿させて頂きました。

以上、宜しくお願い致します。

oriduru👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

こんにちは。

x64ビルドされているのであれば無理です。
自作のソフトであれば、64bitソフトのターゲットをx86、または32bit優先モードにしてビルドする必要があります。

AnyCPUでビルドしたのであれば開発者コンマンドプロンプトから32bit優先モードに変更出来ます。
https://msdn.microsoft.com/ja-jp/library/ms164699(v=vs.110).aspx
32bitモードで動作すればx86のネイティブDLLも読み込めます。

投稿2016/03/08 06:08

編集2016/03/08 06:10
Tak1wa

総合スコア4791

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kakine

2016/03/08 07:59

貴重なアドバイス有難うございます。 ご提供頂いた情報を参考にさせて頂きます。
guest

0

COMサーバーとCOMクライアントはどちらが32ビットでどちらが64ビットでも相互に呼び出し可能です。
ということは、32ビットDLLをラップする32ビットのCOMサーバーを作れば、64ビット.NETプログラム側はCOM呼び出しをすることでDLLを利用できるようになります。

投稿2016/03/08 07:52

yuba

総合スコア5568

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kakine

2016/03/08 08:01

貴重なアドバイス有難うございます。 ご提供頂いた情報を参考にさせて頂きます。
guest

0

ベストアンサー

すでに回答されてますが使用できません。

間違ったフォーマットのプログラムを読み込もうとしました。等のエラーが出てしまいます。
どちらかに合わしてあげる(C/C++のDLLを64Bitでリビルド、もしくはC#を32Bitで使用)のであれば可能かと思います。
また、どのような処理をするDLLか分かりませんが、アンマネージドなライブラリであれば、
一旦C#で読み込める用に宣言しつつC#側でDllImportで読み込むか、
C/C++のDLLを.NetのC++/Cliでラップ(C#で読み込める形に変換のようなもの)をしてそれをC#で読み込ませるか、で可能になります。

もし作成されるのであれば、下記URLを参考にしてください。
情報が古いので、もしかしたら今では簡単に読み込む方法があるかもしれませんが、上記2つしか存じていないためご容赦ください。

C#で直接読み込む
http://qiita.com/ask/items/ee2ff5b8706effc0c3d8

C++/Cliでラップ
http://xptn.dtiblog.com/blog-entry-20.html
http://vene.wankuma.com/prog/CppCli_strings.aspx
http://www.atmarkit.co.jp/fdotnet/special/vcppinvista01/vcppinvista01_04.html
http://codezine.jp/article/detail/4774

投稿2016/03/08 06:51

pinnkoro

総合スコア66

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kakine

2016/03/08 07:58

迅速なご回答並びに貴重なアドバイス有難うございます。 ご提供頂いた情報を参考にさせて頂きます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問