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

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

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

Re[13]: C++のLibを.NETで使用できるDLLに変換したい[2]


(過去ログ 57 を表示中)

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

■32478 / inTopicNo.1)  C++のLibを.NETで使用できるDLLに変換したい[2]
  
□投稿者/ べん (4回)-(2009/02/07(Sat) 02:49:26)

分類:[.NET 全般] 

以前下記の質問をさせて頂き、一旦解決とさせて頂いたのですが、うまくいきませんでした。

http://bbs.wankuma.com/index.cgi?mode=al2&namber=30497&KLOG=54

状況としては、新しくプロジェクトをVS2008のC++/CLIで作成しました。
参照したいVC++のLIBとそのヘッダファイルを準備し、そのプロジェクトで参照するようにしました。

コンパイルすると下記のエラーが発生します。

=============================================================================================
エラー 12 error C2146: 構文エラー : ';' が、識別子 'hrasconn' の前に必要です。 C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\ras.h 98 Project
エラー 13 error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\ras.h 98 Project
=============================================================================================
環境の問題なのか、問題解決ができていません。
ラッパーのプロジェクトを作成すれば簡単にいけるものと思ってましたが、プロジェクトのオプションもろくに
理解もできておらず、プロパティ変更もできません。

申し訳ありませんが、ご教授下さい。
宜しくお願い致します。

引用返信 編集キー/
■32480 / inTopicNo.2)  Re[1]: C++のLibを.NETで使用できるDLLに変換したい[2]
□投稿者/ επιστημη (1673回)-(2009/02/07(Sat) 07:52:53)
επιστημη さんの Web サイト
- そのエラーはC++/CLIでコンパイルすることによるものですか?
普通のC/C++:Windowsではどうですか?
- ライブラリのbuild-optionに誤りはありませんか?
- > 参照したいVC++のLIBとそのヘッダファイルを準備し、そのプロジェクトで参照するようにしました。
 そのLIBを再buildしてみましたか? ちゃんとLIBが生成されますか?

> プロジェクトのオプションもろくに理解もできておらず、プロパティ変更もできません。

...どうしろと?

引用返信 編集キー/
■32482 / inTopicNo.3)  Re[1]: C++のLibを.NETで使用できるDLLに変換したい[2]
□投稿者/ dogatana (33回)-(2009/02/07(Sat) 08:05:44)
No32478 (べん さん) に返信

> 参照したいVC++のLIBとそのヘッダファイルを準備し、そのプロジェクトで参照するようにしました。
> コンパイルすると下記のエラーが発生します。
> =============================================================================================
> エラー	12	error C2146: 構文エラー : ';' が、識別子 'hrasconn' の前に必要です。
>	C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\ras.h	98	Project

ras.h でコンパイルエラーが発生しているということですね。
該当する個所は次のあたり(当方VC2005ですが)
RASCONNW
{
    DWORD    dwSize;
    HRASCONN hrasconn;

で、HRASCONNが分からないためだと思われます。
空のC++/CLIコンソールプロジェクトで単に

#include <ras.h>

してコンパイルすると類似エラーが山ほど出ますが、

#include <windows.h>
#include <ras.h>

としてやるとコンパイルできました。

挿入する位置によっては別のエラーが出たりするので、準備されたヘッダファイルの内容を確認してみてはいかが?

引用返信 編集キー/
■32483 / inTopicNo.4)  Re[2]: C++のLibを.NETで使用できるDLLに変換したい[2]
□投稿者/ Azulean (285回)-(2009/02/07(Sat) 09:16:31)
CLRプロジェクトは標準で、Windows.h等のヘッダファイルのインクルード文は記述されていません。
stdafx.hファイルについて、今回新規に作られたものと、以前のプロジェクトのものと見比べてみて下さい。
引用返信 編集キー/
■32542 / inTopicNo.5)  Re[3]: C++のLibを.NETで使用できるDLLに変換したい[2]
□投稿者/ べん (5回)-(2009/02/09(Mon) 01:02:04)
ありがとうございます。

stdafx.hの内容がまったく違っておりました。
申し訳ありません。

エラーが相当減り、下記のエラーが発生しております。
デバッグをお願いしているようで申し訳ありません。

==============================================================================================
エラー 3 error LNK2001: 外部シンボル ""extern "C" int __stdcall CryptStringToBinaryA(char const *,unsigned long,unsigned long,unsigned char *,unsigned long *,unsigned long *,unsigned long *)" (?CryptStringToBinaryA@@$$J228YGHPBDKKPAEPAK22@Z)" は未解決です。 aaaaa.obj xxxxx
エラー 4 error LNK2001: 外部シンボル ""extern "C" int __stdcall CryptBinaryToStringA(unsigned char const *,unsigned long,unsigned long,char *,unsigned long *)" (?CryptBinaryToStringA@@$$J220YGHPBEKKPADPAK@Z)" は未解決です。 aaaaa.obj xxxxx
エラー 5 error LNK2001: 外部シンボル "___argv" は未解決です。 nafxcw.lib xxxxx
エラー 6 error LNK2001: 外部シンボル "___argc" は未解決です。 nafxcw.lib xxxxx
エラー 7 fatal error LNK1120: 外部参照 4 が未解決です。 C:\xxxxx\xxxxx\xxxxx.dll xxxxx
==============================================================================================
LINK2001のエラーだったので、ヘルプを見て、/Zl コンパイラ オプションを無効にしましたが駄目でした。
コードが正しくなかったり、バージョン違い?のようなのですが・・・
WindowsXPを使用していますが、OSのバージョンで違ってくるとかあるのでしょうか。

申し訳ありませんが、宜しくお願いします。
引用返信 編集キー/
■32543 / inTopicNo.6)  Re[4]: C++のLibを.NETで使用できるDLLに変換したい[2]
□投稿者/ ちゃっぴ (204回)-(2009/02/09(Mon) 01:09:39)
ちゃっぴ さんの Web サイト
Linker option どうなっているのでしょうか?
CryptBinaryToString を利用するためには Crypt32.lib を link しないといけないと思いますが、できていますか?

あとなんか、ANSI 版の方を呼んでいるようですが、大丈夫かな。。。
引用返信 編集キー/
■32574 / inTopicNo.7)  Re[5]: C++のLibを.NETで使用できるDLLに変換したい[2]
□投稿者/ dogatana (36回)-(2009/02/09(Mon) 22:54:30)
エラーメッセージでググってやるとMFCがどうとか出てきますね。

元々参照されている記事(@ITの記事)にもネイティブとあってサンプルもMFCではなさそう。

=引用開始
MFCが提供するこのアーキテクチャをC#によるViewとC++/CLIによるDocumentで実現することになります
=引用終了

ともあって、MFCが提供している機能は.NETで代替する流れで記載されてます。
(タイトルは「MFCから.NETへの実践的移行計画」なので正しい流れですが)
そもそも無理ってことはないのでしょうかねぇ。


引用返信 編集キー/
■32577 / inTopicNo.8)  Re[6]: C++のLibを.NETで使用できるDLLに変換したい[2]
□投稿者/ Azulean (291回)-(2009/02/09(Mon) 23:30:26)
No32574 (dogatana さん) に返信
> ともあって、MFCが提供している機能は.NETで代替する流れで記載されてます。
> (タイトルは「MFCから.NETへの実践的移行計画」なので正しい流れですが)
> そもそも無理ってことはないのでしょうかねぇ。

この最後の一文が指し示す意味が少し掴みかねました。
どういったことでしょうか。


なお、C++/CLIとMFCの共存はできることはできますが、めんどくさいことも多々あります。
引用返信 編集キー/
■32578 / inTopicNo.9)  Re[7]: C++のLibを.NETで使用できるDLLに変換したい[2]
□投稿者/ dogatana (37回)-(2009/02/09(Mon) 23:50:16)
No32577 (Azulean さん) に返信
>
> この最後の一文が指し示す意味が少し掴みかねました。
> どういったことでしょうか。

共存できるかどうかざっと読んだだけで分からなかったので、そもそも共存不可ではないのかと思って書いたのですが、不用意でした。
すみません。

> なお、C++/CLIとMFCの共存はできることはできますが、めんどくさいことも多々あります。

スレ主さんの書かれている状況だと結構大変そうですね。。

引用返信 編集キー/
■32580 / inTopicNo.10)  Re[8]: C++のLibを.NETで使用できるDLLに変換したい[2]
□投稿者/ べん (6回)-(2009/02/10(Tue) 00:36:24)
いろいろとありがとうございます。

元々が下記URLにあるC++(VS2003)用のLibを、C#で参照したくご質問させて頂きました。

http://www.trustss.co.jp/smnEncrypt010.html

C#で同じ暗号化/複合化を実装して同じ結果が得られると一番いいのですが、
実装方法が分からず、Libを直接参照できないかとなりました。

Crypt32.libなどを調べてみたいと思います。

簡単にはいかないものですね・・・

引用返信 編集キー/
■32581 / inTopicNo.11)  Re[9]: C++のLibを.NETで使用できるDLLに変換したい[2]
□投稿者/ ちゃっぴ (207回)-(2009/02/10(Tue) 05:55:45)
ちゃっぴ さんの Web サイト
No32580 (べん さん) に返信
> いろいろとありがとうございます。
>
> 元々が下記URLにあるC++(VS2003)用のLibを、C#で参照したくご質問させて頂きました。
>
> http://www.trustss.co.jp/smnEncrypt010.html

なんだわざわざ C++/CLI で作成する必要ないじゃん。

System.Security.Cryptography 名前空間
http://msdn.microsoft.com/ja-jp/library/system.security.cryptography.aspx


引用返信 編集キー/
■32626 / inTopicNo.12)  Re[10]: C++のLibを.NETで使用できるDLLに変換したい[2]
□投稿者/ べん (7回)-(2009/02/11(Wed) 00:01:23)
2009/02/11(Wed) 00:22:59 編集(投稿者)
2009/02/11(Wed) 00:22:57 編集(投稿者)
2009/02/11(Wed) 00:22:49 編集(投稿者)

ありがとうございます。

> System.Security.Cryptography 名前空間
> http://msdn.microsoft.com/ja-jp/library/system.security.cryptography.aspx

このページには一度たどりつきましたが、実装できるか分からず読み飛ばしておりました。
暗号化などの知識があまりないので、コードが何をしているかあまり理解できてないのも
問題です・・・
この暗号化のアルゴリズムは、RC4になるのでしょうか?

暗号化複合化のページがアルゴリズムの違いで結構サンプルがありますが、いいサンプルが
あれば教えて頂けないでしょうか。

宜しくお願い致します。


引用返信 編集キー/
■32628 / inTopicNo.13)  Re[11]: C++のLibを.NETで使用できるDLLに変換したい[2]
□投稿者/ Azulean (292回)-(2009/02/11(Wed) 00:30:16)
>>System.Security.Cryptography 名前空間
>>http://msdn.microsoft.com/ja-jp/library/system.security.cryptography.aspx
>
> この暗号化のアルゴリズムは、RC4になるのでしょうか?
「この」が何を示しているかよく分かりません。
Cryptography名前空間は特定のアルゴリズムに特化したものではありません。
この名前空間に含まれる、それぞれのクラスがそれぞれのアルゴリズムに特化したものになります。

ところで、求めているのは暗号化ですか?ハッシュですか?

暗号化ならこの辺でも。
http://dobon.net/vb/dotnet/string/encryptfile.html
引用返信 編集キー/
■32629 / inTopicNo.14)  Re[12]: C++のLibを.NETで使用できるDLLに変換したい[2]
□投稿者/ ちゃっぴ (208回)-(2009/02/11(Wed) 00:48:57)
ちゃっぴ さんの Web サイト
とりあえず、下記から link たどってみて調査しましょう。

暗号サービス
http://msdn.microsoft.com/ja-jp/library/93bskf9z.aspx
引用返信 編集キー/
■32630 / inTopicNo.15)  Re[13]: C++のLibを.NETで使用できるDLLに変換したい[2]
□投稿者/ べん (8回)-(2009/02/11(Wed) 02:16:49)
ありがとうございます。

> 暗号サービス
> http://msdn.microsoft.com/ja-jp/library/93bskf9z.aspx

難しそうですが、見てみます。
置き換えまで時間がかかりそうですね。

がんばってみます。

引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -