У меня возникла странная проблема относительно функции, экспортированной из dll с ошибками C++, которую я использую из кода C#: возвращенный bool, полученный на C#, всегда прав, независимо от того, что я верну в C++. Я сузил и получил файл C++, содержащий следующий код:Почему моя функция dllimport всегда возвращает true?
#ifdef __cplusplus
extern "C" {
#endif
__declspec(dllexport) bool init()
{
return false;
}
#ifdef __cplusplus
}
#endif
я строй его в DLL и импортировать функции в C#:
using System;
using System.Runtime.InteropServices;
namespace Test
{
class TestDll
{
[DllImport("dlltest_d")]
public static extern bool init();
}
class Program
{
static void Main(string[] args)
{
if(!TestDll.init())
{
Console.WriteLine("init failed");
return;
}
Console.WriteLine("init succeeded");
}
}
}
Когда я запускаю это, я получаю следующее выход:
INIT удалось
Я очень озадачен. Есть идеи?
о, черт возьми. благодаря! – iko79