による@に呼び出すことはできません私は彼がC++で私を作っ暗号化し、セキュリティを扱ういくつかのクールな機能をした友人を得ました。彼はその後、より安全なものにするために、自杀菌を使用しました。themidia仮想C++ DLL関数は、名前
彼は私にDLLを与えたと私はすべての機能を見つけるために、機能のファインダーを使用しました。しかし、ここに問題があります。
すべての機能は、彼らに@記号を持っている、とC#で、私はそれはそれは@に構文エラーであるため、コードをコンパイルすることはできませんと言う重要なDLLを使用する場合。例えば、関数名は "CheckPassword_ @ 12"と変わっていますが、C#ではそれが許されません。
は、私が行方不明です何かがあり、彼は文句を言わない私に、彼らは私のアプリケーションは、自分のDLLを変更できるように割れた場合、彼は人々を望んでいないため、無担保DLLを与えます。私は複数のアプリケーションをチェックし、私の自己を詰まらせましたが、すべての関数名は@で登場しています。
ありがとうございます!
@ 12の後置記号は、CallingConvention.StdCallで関数を宣言したことを示します。あなたはC#宣言からそれを省略します。またはExactSpellingを使用します。 *本当に*仮想C++関数(署名ではないと言われています)であれば、C#から直接呼び出すことはできません。 –
それでも、それはまだエラーと言います。 プライベート静的なextern IntPtr _passwordValid @ 8(文字列string_0、文字列string_1); DllImport( "security.dll"、CallingConvention = CallingConvention.StdCall、ExactSpelling = true); –