第一次在c#中使用gdcm 在第一行有一个例外。 请,任何帮助
gdcm.ImageReader gReader = new gdcm.ImageReader();
gReader.SetFileName(inputFile);
错误是: ' gdcm.gdcmPINVOKE'的类型初始值设定项抛出异常
innerException是: {"' SWIGExceptionHelper'的类型初始值设定项抛出异常。"}
答案 0 :(得分:2)
可能会迟到,但我刚刚通过此解决方案是将所有Dll(fromd gdcm building bin文件夹)复制到bin \ debug或release文件夹
答案 1 :(得分:0)
PS 当我构建GDCM时,我没有注意为Win32构建它,但是尝试构建"任何CPU"
答案 2 :(得分:0)
通过将目标框架从4.5更改为4.0
,它对我有用答案 3 :(得分:0)
来自常见问题:
dllnotfound例外
如果你得到了dllnotfound异常,那么这意味着你没有在步骤6和7中复制新制作的dll。
这是一般错误,这意味着找不到可执行文件使用的dll。它并不一定意味着直接引用的dll是问题。通常,如果您没有复制gdcm.dll和相关库,但已将gdcmsharpglue.dll设置为您的程序引用之一,则会收到此错误。它并不意味着缺少gdcmsharpglue,这意味着缺少基础库。
要找出缺少哪个dll,请尝试使用Dependency Walker。该程序将找到丢失的库,然后您可以将其放在可执行文件的路径中。
解决这个问题的一种方法是设置一个' includes'应用程序树中的目录(假设您在Windows中,而不是单声道 - Mono可能不同),其中包含gdcm库。从那里,您可以为您的项目创建一个post-build事件,因此在您进行构建时会复制文件。这种方法每次进行构建都需要一些时间,但是当您试图找出库的位置以及为什么没有找到dll时,可以节省时间。
mkdir Debug
mkdir Release
copy ..\..\..\Includes\gdcm\*.dll ..\Debug\*.dll
copy ..\..\..\Includes\gdcm\*.dll ..\Release\*.dll
这两个mkdir在那里,如果你从头开始重建,你就不会在构建时出错。也就是说,如果您正在构建调试并且您没有发布目录,则复制行会给您一个错误。如果你不复制到这两个目录,当你在调试工作之后去构建你的发布版本时,你的发布版本不会起作用,当你弄清楚时你会感到非常沮丧你忘了将dll复制到发布和调试中。