Я пытаюсь получить доступ к функциям в неуправляемой DLL-C++, и я изо всех сил пытаюсь получить какие-либо результаты. Вот что я далеко:Использование C++ неуправляемой dll в C#
static unsafe void Main(string[] args)
{
IntPtr testIntPtr = aaeonAPIOpen(0);
var DevID = aaeonWdtGetDevID(testIntPtr);
Console.WriteLine("DevID: " + DevID.ToString()); //Does not work
byte pbData1 = 0;
byte pbData2 = 0;
Console.WriteLine("Before: {0} {1}", pbData1.ToString(), pbData2.ToString());
aaeon12VData(testIntPtr, &pbData1, &pbData2); //Notice long delay, but doesn't change pbData1 or pbData2
Console.WriteLine("After: {0} {1}", pbData1.ToString(), pbData2.ToString());
}
[DllImport("aonAPI.dll", EntryPoint = "[email protected]@[email protected]", ExactSpelling = true, CallingConvention = CallingConvention.Cdecl)]
public static extern ushort aaeonWdtGetDevID(IntPtr hInst);
//C++ Code
//DLLAPI WORD aaeonWdtGetDevID(HANDLE hInst);
[DllImport("aonAPI.dll", EntryPoint = "[email protected]@[email protected]", ExactSpelling = true, CallingConvention = CallingConvention.Cdecl)]
public static extern unsafe IntPtr aaeon12VData(IntPtr hInst, byte* pbData, byte* pbData2);
// C++ code
//DLLAPI HRESULT aaeon12VData(HANDLE hInst, BYTE* pbData, BYTE* pbData2);
[DllImport("aonAPI.dll", EntryPoint = "[email protected]@[email protected]", ExactSpelling = true, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr aaeonAPIOpen(uint reserved);
// C++ code
//DLLAPI HANDLE aaeonAPIOpen(DWORD reserved);
А вот как программа C++ использует API для 12V:
while(hInst == NULL)
{
hInst = aaeonAPIOpen(0);
}
unsigned char temp;
unsigned char temp2;
if(aaeon12VData(hInst,&temp,&temp2) == S_OK)
{
m_message.Format(_T("%d.%d"),temp2,temp);
}
Вот в DUMPBIN:
3 2 00001380 [email protected]@[email protected]
5 4 00001020 [email protected]@[email protected]
10 9 00001040 [email protected]@[email protected]
валюта на SO вверх-голосов. Вы вдохновляете участников помочь вам, используя их. Они не облагаются налогом. –