मुझे एक सी ++ डीएल मिला जिसे सी # प्रोजेक्ट में एकीकृत किया जाना है।सी # परियोजना में सी ++ डीएलएल का उपयोग
मुझे लगता है कि मुझे ऐसा करने का सही तरीका मिल गया है, लेकिन डीएल को कॉल करने से मुझे यह त्रुटि मिलती है: सिस्टम। बैड इमेजफॉर्मैट अपवाद: किसी प्रोग्राम को गलत प्रारूप के साथ लोड करने का प्रयास किया गया था। (HRESULT से अपवाद: 0x8007000B)
इस dll में समारोह है:
extern long FAR PASCAL convert (LPSTR filename);
और यह कोड मैं में उपयोग कर रहा हूँ है सी #
namespace Test{
public partial class Form1 : Form
{
[DllImport("convert.dll", SetLastError = true)]
static extern Int32 convert([MarshalAs(UnmanagedType.LPStr)] string filename);
private void button1_Click(object sender, EventArgs e)
{
// generate textfile
string filename = "testfile.txt";
StreamWriter sw = new StreamWriter(filename);
sw.WriteLine("line1");
sw.WriteLine("line2");
sw.Close();
// add checksum
Int32 ret = 0;
try
{
ret = convert(filename);
Console.WriteLine("Result of DLL: {0}", ret.ToString());
}
catch (Exception ex)
{
lbl.Text = ex.ToString();
}
}
}}
में आगे बढ़ने के कोई भी विचार इसके साथ?
धन्यवाद एक बहुत, फ्रैंक
वह पहले से ही है। WinDef.h '# परिभाषित करें PASCAL __stdcall' –
मुझे डीएल" जैसा है "का उपयोग करना है ... – Frank
में कोई बदलाव नहीं है, अलग-अलग शीर्षकों (WinDef.h में भी) में PASCAL की अलग-अलग घोषणाएं हैं, लेकिन' __stdcall' को उसी तरह से समझा जाएगा – Oleg