C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[10]: C++でエラーが取れない


(過去ログ 128 を表示中)

[トピック内 12 記事 (1 - 12 表示)]  << 0 >>

■76059 / inTopicNo.1)  C++でエラーが取れない
  
□投稿者/ たくや (7回)-(2015/05/28(Thu) 13:13:07)

分類:[C/C++] 

以下のようなエラーが20件以上発生してとることができません。
検索して調べてみるとリンカエラーだということまではわかりました。
可能性としてDLLを読み込めていないのかと思いますが、そのDLLを読み込む方法がわかりません。
わかる方いらっしゃったら教えていただけないでしょうか。

エラー 1 error LNK2019: 未解決の外部シンボル __imp__Aloha_SetupPort@12 が関数 "protected: virtual int __thiscall CAlohaConnectionDlg::OnInitDialog(void)" (?OnInitDialog@CAlohaConnectionDlg@@MAEHXZ) で参照されました。 C:\Users\takuya1109\Documents\Visual Studio 2012\Projects\AlohaConnection\AlohaConnection\AlohaConnectionDlg.obj AlohaConnection

引用返信 編集キー/
■76062 / inTopicNo.2)  Re[1]: C++でエラーが取れない
□投稿者/ 774RR (259回)-(2015/05/28(Thu) 14:07:53)
C/C++ から DLL を使う方法としては大別して2とおりあって
その1.インポートライブラリのリンク
その2.LoadLibrary+GetProcAddress による動的ロード

このエラーはその1のインポートライブラリを正しく指定していない場合のエラー。

例:関数 timeGetTime を使うには
ヘッダ mmsystem.h と
インポートライブラリ winmm.lib を指定する。
https://msdn.microsoft.com/ja-jp/library/cc428795.aspx

ということで DLL ではなくインポートライブラリである なんちゃら.lib があるはずなので
どの ****.lib が適切かをドキュメントから探し
適切な ****.lib をプロジェクトのプロパティ→リンカ→入力に追加だ。
引用返信 編集キー/
■76064 / inTopicNo.3)  Re[2]: C++でエラーが取れない
□投稿者/ たくや (8回)-(2015/05/28(Thu) 15:56:46)
> ということで DLL ではなくインポートライブラリである なんちゃら.lib があるはずなので
> どの ****.lib が適切かをドキュメントから探し
> 適切な ****.lib をプロジェクトのプロパティ→リンカ→入力に追加だ。

先ほど、言われているlibファイルと思われるファイルをプロジェクトプロパティ→リンカー→入力→追加の依存ファイルに設定してみました。
ですが、エラーは取れませんでした。

手順が間違ってるかもしれないですがどうでしょうか?
引用返信 編集キー/
■76069 / inTopicNo.4)  Re[3]: C++でエラーが取れない
□投稿者/ 774RR (260回)-(2015/05/28(Thu) 16:31:03)
> 先ほど、言われているlibファイルと思われるファイルを
「思われる」ということは「間違いなくこれ」と確認したわけではない、ということ?
間違ったインポートライブラリファイルを追加してもエラーは取れないっす。
特に VC++ の場合コンパイルオプション別に別のファイルを追加する必要があったりするので
その辺はドキュメントを注意して確認する必要があるです。

あとリンカ→全般→追加のライブラリディレクトリのほうも設定する必要があるですよ。
さらに実行時に (インポートライブラリでなく) DLL 自体が見つかるように細工する必要ありです。

プロジェクトのプロパティも Debug/Release や x86/x64 と複数あるので全部に対処が必要。
記入する内容が全部違うことがあるので厄介です。

引用返信 編集キー/
■76072 / inTopicNo.5)  Re[4]: C++でエラーが取れない
□投稿者/ たくや (9回)-(2015/05/28(Thu) 17:09:57)
No76069 (774RR さん) に返信

> あとリンカ→全般→追加のライブラリディレクトリのほうも設定する必要があるですよ。
これも試してみましたがダメでした。

> さらに実行時に (インポートライブラリでなく) DLL 自体が見つかるように細工する必要ありです。
申し訳ありません。DLL自体に細工というのはどのようにやるのでしょうか。

引用返信 編集キー/
■76074 / inTopicNo.6)  Re[5]: C++でエラーが取れない
□投稿者/ 774RR (261回)-(2015/05/28(Thu) 18:41:12)
Windows に標準添付されていない DLL を使うということは、
末端ユーザにその DLL をどう配布するかまで事前に考えた上で開発はじめる必要があるってこと。
普通は「インストーラで EXE ファイルと同じディレクトリにコピーする」わけで、
開発環境のほうでも「リンクされた EXE ファイルが生成されるディレクトリ」に
事前に当該 DLL をコピーしておく必要があるわけだ(これが「開発環境の細工」)
# DLL に細工するわけぢゃない
実行時の話なのでリンクが通らない現状ではあまり関係ないけどさ。

「正しく設定した?」に対して「設定しました」だけだと読者には具体的に何をしたのかまったくわからないよ。
正しいライブラリを正しくリンクすれば成功するはずなのでどこかに何か間違いがあるのは確実。
まあもうちょっと慎重にドキュメント読んで正しい設定することだね。
引用返信 編集キー/
■76082 / inTopicNo.7)  Re[6]: C++でエラーが取れない
□投稿者/ たくや (11回)-(2015/05/29(Fri) 16:28:08)
たくや さんの Web サイト
No76074 (774RR さん) に返信
> Windows に標準添付されていない DLL を使うということは、
> 末端ユーザにその DLL をどう配布するかまで事前に考えた上で開発はじめる必要があるってこと。
> 普通は「インストーラで EXE ファイルと同じディレクトリにコピーする」わけで、
> 開発環境のほうでも「リンクされた EXE ファイルが生成されるディレクトリ」に
> 事前に当該 DLL をコピーしておく必要があるわけだ(これが「開発環境の細工」)
> # DLL に細工するわけぢゃない
> 実行時の話なのでリンクが通らない現状ではあまり関係ないけどさ。
>
> 「正しく設定した?」に対して「設定しました」だけだと読者には具体的に何をしたのかまったくわからないよ。
> 正しいライブラリを正しくリンクすれば成功するはずなのでどこかに何か間違いがあるのは確実。
> まあもうちょっと慎重にドキュメント読んで正しい設定することだね。

昨日調べまくりましてエラーがかわりました。
32bitPCではエラーが変わって64bitでは変わりませんでした。
因みにエラー内容が以下になります。
ググって調べてwindows\System32にdllを置くという対処法は別のエラーが出てググっても答えがでてきませんでした。
引き続きエラーが取れる方法を募集します。

---------------------------
AlohaConnection.exe - システム エラー
---------------------------
コンピューターに AlohaDLL.dll がないため、プログラムを開始できません。この問題を解決するには、プログラムを再インストールしてみてください。
---------------------------
OK
---------------------------

引用返信 編集キー/
■76084 / inTopicNo.8)  Re[7]: C++でエラーが取れない
□投稿者/ たくや (12回)-(2015/05/29(Fri) 16:38:23)
たくや さんの Web サイト
因みにエラーが取れなたのが構成プロパティ→リンカー→全般→追加のライブラリディレクトリにDEBUGフォルダを指定しました。
引用返信 編集キー/
■76085 / inTopicNo.9)  Re[8]: C++でエラーが取れない
□投稿者/ たくや (13回)-(2015/05/29(Fri) 18:34:20)
たくや さんの Web サイト
現状が読めなくなってきたので解決とします。
解決済み
引用返信 編集キー/
■76086 / inTopicNo.10)  Re[8]: C++でエラーが取れない
□投稿者/ 774RR (262回)-(2015/05/29(Fri) 18:36:46)
> コンピューターに AlohaDLL.dll がないため、プログラムを開始できません。
これにはいくつか原因が考えられ、可能性の高そうなものだけ挙げると
・文字通り AlohaDLL.DLL が無い
 ・ DLL 検索規則 https://msdn.microsoft.com/ja-jp/library/7d83bc18.aspx
  決められた場所に無い
 ・ファイルはあるけど、適合しない (x86 EXE を実行しようとしているのに x64 DLL がある等)
・ AlohaDLL.DLL はあるけど、それがさらに別のファイル (DLL 等) を使っていて、それが無い
 ・実は AlohaDLL.DLL 単体では動作せず、メーカ提供の別のファイルが必要とか
 ・当該 AlohaDLL.DLL が Visual Studio **** Runtime Redistributable を要求しているとか
 ・当該 AlohaDLL.DLL が MFC DLL を要求しているとか

その辺、我々読者には調べようが無いのでいろいろ追いかけてみるといい。
dumpbin /dependents alohadll.dll とか。

C:\Windows\System32 にサードパーティ DLL を置くのはダメだよ
ウイルス対策ソフトとか Windows Defender とかが拒絶する。

引用返信 編集キー/
■76087 / inTopicNo.11)  Re[9]: C++でエラーが取れない
□投稿者/ 774RR (263回)-(2015/05/29(Fri) 18:39:54)
なんだあきらめちゃうのか。もう知らん。
解決済み
引用返信 編集キー/
■76088 / inTopicNo.12)  Re[10]: C++でエラーが取れない
□投稿者/ daive (60回)-(2015/05/31(Sun) 00:14:54)
C++のDLLをC#で使う
http://bbs.wankuma.com/index.cgi?mode=al2&namber=76018
>今現在
http://www.nikko-ew.co.jp/cti/download.html
>でDLしたC++のDLLを使用してナンバーディスプレイの値を取得しようと考えています。

今回の一連の書込み
より、
(私が使うわけでは無いので、詳しくは調べてはいませんが、)
アロハシリーズ:ナンバーディスプレーアダプタが対象であれば、

1.(株)日興電機製作所製の、該当機器を持っていますか?
2.ドライバソフトのインストールが正常に行われていて、
  機能確認は済んでいますか?
3.有償、無償のアプリでの動作確認は済ましていますか?
4.今回の用途や、方法用に、APIなどが公開されている
  情報を使って。。。。

1〜3の事が出来ていて、(出来ているのは当然の事として、書いていませんし、聞いていません。)
4の情報があって、その上で、別アプリからの使用可能になると
考えるのが、普通だとおもいますが?

 CTI製品の各種ダウンロード
 http://www.nikko-ew.co.jp/cti/download.html
 では、ハイパーターミナルで使用可能な
 製品もあるようですから、その機器は、少なくとも、
 (ハードウェア、ソフトウェアの別はあるにしても、)
 シリアル通信製品の様子です。

また、DLL(4版):DLL4.zip、解凍すると、
DLL(4版)
フォルダが作成されて、サンプルプログラムと、ドキュメントが作成されますが、
「アロハDLL サンプルアプリ補足説明.doc」
位は、読んでいますか?
 1. PL-2303用のドライバは最新のものを使用してください。
 詳細はPL-2303用ドライバフォルダ内の「PL-2303ドライバについて.doc」を参照してください。
と、あります。
PL-2303 用のドライバについては、ネット上で各種情報が取得可能です。

と云う事で、当たり前に行うべきことを、当たり前に行っていない可能性があります。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -