मैं पी/आह्वान जानने के लिए कोशिश कर रहा हूँ, इसलिए मैं C++जब बुला सी ++ सी # में dll एक प्रवेश बिंदु मिल करने में असमर्थ
KingFucs.h एक सरल dll बनाया :
#include "KingFuncs.h"
#include <stdexcept>
using namespace std;
namespace KingFuncs
{
int KingFuncs::GiveMeNumber(int i)
{
return i;
}
}
तो यह संकलित करता है, तो मैं अपने WPF के डिबग फ़ोल्डर में इस dll की नकल की, कोड के साथ:
[DllImport("KingFuncDll.dll", EntryPoint = "GiveMeNumber", SetLastError = true, CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
public static extern int GiveMeNumber(
int i
);
और बटन क्लिक करें में यह बुला:
private void Button_Click(object sender, RoutedEventArgs e)
{
int num = GiveMeNumber(123);
}
लेकिन यह मुझे अपवाद देता है:
DLL 'KingFuncDll.dll' में 'GiveMeNumber' नामक एक प्रवेश बिंदु ढूँढने में असमर्थ।
वास्तव में .... मैंने क्या गलत किया है ... यह स्पष्ट रूप से डीएलएल खोजने में सक्षम है, अन्यथा एक और अपवाद होगा। लेकिन मेरा विधि नाम बिल्कुल वही है .... मैं अन्य कारणों के बारे में सोच नहीं सकता।
कृपया मेरा प्रश्न यहां देखें: http://stackoverflow.com/questions/9849541/writing-c-intended-to-be-called-from-c –
मैंने एक ही प्रश्न हल किया, और [इस पोस्ट] में इसका वर्णन किया (https://stackoverflow.com/a/45263176/1817569)। – Hamid