DCMTK: обернутая dcmsend dll, вызываемая из C #, выдает ошибку при вызове более одного раза - PullRequest
0 голосов
/ 04 апреля 2019

Я пытаюсь интегрировать DCMTK 3.6.4 (библиотеку C ++) в среду C #.Хотя я успешно обернул DLL

, для этого я взял код для dcmsend, обернул его в 'extern "C" {}', поместил _declspec (dllexport) 'перед основным методоми экспортировал его в DLL.Затем я вызываю эту DLL из C # с помощью этого кода.

Вот DLLImport:

[DllImport("dcmsend.dll", CharSet = CharSet.Ansi, 
CallingConvention = CallingConvention.StdCall, EntryPoint = "main")]
public static extern int dcmsendMain(int argc, string[] argv);

Я вызываю метод следующим образом;IP, порт и имя файла являются строками, и все они действительны.

dcmsendMain(5, new string[] { "dcmsend", "-v", ip, port, filename });

Когда я вызываю вышеуказанный метод только один раз, он выводит следующий текст:

I: checking input files ...
I: starting association #1
I: initializing network ...
I: negotiating network association ...
I: Requesting Association
I: Association Accepted (Max Send PDV: 16372)
I: sending SOP instances ...
W: DcmItem: Length of element (7fe0,0010) is not a multiple of 2 (VR=OW)
I: Sending C-STORE Request (MsgID 1, SC)
I: Received C-STORE Response (Success)
I: Releasing Association
I:
I: Status Summary
I: --------------
I: Number of associations   : 1
I: Number of pres. contexts : 1
I: Number of SOP instances  : 1
I: - sent to the peer       : 1
I:   * with status SUCCESS  : 1

Однако все последующие временачто метод вызывается в том же сеансе, даже если имена файлов различаются, выведите следующие выходные данные:

W: no data dictionary loaded, check environment variable: DCMDICTPATH
I: checking input files ...
I: starting association #1
I: initializing network ...
I: negotiating network association ...
I: Requesting Association
I: Association Accepted (Max Send PDV: 16372)
I: sending SOP instances ...
W: DcmItem: Length of element (7fe0,0010) is not a multiple of 2 (VR=OW)
E: DcmSequenceOfItems: Parse error in sequence (7fe0,0010), found (fffe,e000) instead of sequence delimiter (fffe,e0dd)
E: cannot send SOP instance from file: IM-0001-0000.dcm: Sequence Delimitation Item missing
F: cannot send SOP instance: Sequence Delimitation Item missing
I: Aborting Association

В качестве состояния вывода последующие операции также не отправляются должным образом.

Как мне решить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...