Вызов StartXpsPrintJob1 ()

Я пытаюсь использовать StartXpsPrintJob1 API в C #.

Однако я не смог найти никакой информации об этом с помощью Google. Этот метод не указан в pinvoke.net.

Кажется, я должен перевести код C ++, включая классы и интерфейсы, в C # и использовать какой-то dllimport? К сожалению, я ничего не знаю о C ++.

Как я могу достичь этого?

0

Решение

Кажется, я должен перевести код C ++, включая классы и интерфейсы, в C # и использовать какой-то dllimport?

Вы можете сэкономить время и силы и использовать инструмент под названием SWIG, (Страница проекта Sourceforge) для генерации кода на C #, который генерирует dllimport.

Как пользоваться:

  • Скачать SWig для окон

  • Создайте заголовочный файл c ++, который представляет StartXpsPrintJob1 , назовите файл xpsheader.h

  • создать файл интерфейса, например, example.i

    %module example
    %{
    /* Includes the header in the wrapper code */
    #include "xpsheader.h"%}
    
    /* Parse the header file to generate wrappers */
    %include "xpsheader.h"
  • Запустите команду:

    swig -csharp example.i

Инструмент генерирует удар файлов с одним файлом с именем examplePINVOKE.cs

На самом деле, важно знать, что SWIG является довольно полным компилятором C ++ с поддержкой практически всех языковых функций. Это включает в себя предварительную обработку, указатели, классы, наследование и даже шаблоны C ++. SWIG также можно использовать для упаковки структур и классов в прокси-классы на целевом языке c #, что очень естественным образом раскрывает базовые функции.

1

Другие решения

Ошибка «неверная сборка», вероятно, возникнет, если вы попытаетесь импортировать файл XpsPrint.dll в свой проект в виде библиотеки .Net: на самом деле это библиотека «родного кода» 🙁

Теоретически, вы должны иметь возможность скопировать / вставить этот пример в новый проект MSVS / C #:

Вы заметите, что он просто «печатает» — он не использует специфичные для XPS API.

Если это не работает для вас, эта ссылка также может помочь:

Наконец, обратите внимание на документацию Microsoft:

https://msdn.microsoft.com/en-us/library/windows/desktop/ff686814(v=vs.85).aspx

[API печати XPS не поддерживается и может быть изменен или недоступен
в будущем. Клиентские приложения должны использовать печатный документ
Пакет API вместо этого.]
1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector