Как импортировать символ константы* API к C#?

Вы можете либо сохранить столбец исходной королевы, а затем пропустить этот столбец solveQueen. или же. создайте метод, который проверяет королеву в столбце уже и пропускает на основе этого. А потом всегда просто звоните solveQueen(1). Первое решение хорошо (более эффективно), если вы когда-нибудь захотите поставить 1-ю королеву. Второе лучше, если вы можете расширить это, чтобы обрабатывать несколько помещенных начальных ферзей.

7
задан Martin Brown 3 February 2009 в 18:05
поделиться

2 ответа

Попробуйте это

   [DllImport("zip4_w32.dll",
       CallingConvention = CallingConvention.StdCall,
       EntryPoint = "z4LLkGetKeySTD",
       ExactSpelling = false)]
   private extern static IntPtr z4LLkGetKeySTD();

Можно затем преобразовать результат в Строку при помощи Маршала. PtrToStringAnsi (). Необходимо будет все еще освободить память для IntPtr с помощью соответствующего Маршала. Свободный* метод.

12
ответ дан 6 December 2019 в 10:54
поделиться

Просто используйте 'строку' вместо 'символа константы *'.

Править: Это опасно по причине объясненный JaredPar. Если Вы не хотите свободное, не используйте этот метод.

2
ответ дан 6 December 2019 в 10:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: