今天通过C#编写Winform程序代码时遇到 其他信息:在可以调用OLE之前,必须将当前线程设置为单线程单元(STA)模式 这个错误,如下:
之前都没有遇到过!一开始怀疑是我的VS编译器有问题,但是设置又都没有改过!因为程序本身有调用到C++的dll,但是这里根本就没有调用到,而且出错的地方也没有调用,排除了它的影响!于是就百度了,有查到相关的信息,但是根据上面的提示都没有解决!于是我重新在SVN上check out 了一份代码下面,重新编译后,发现打开这个文件对话框的时候没有报错,于是就把程序需要的dll ,从原来的Release目录中拷贝过来,结果发现全部拷贝过来之后运行的时候又报这个错误!那么可以肯定问题是出在这些dll上,于是用单个排除法!最后发现是受了本程序生成的dll影响(因为本程序需要生成dll供同事调用,之前生成复制给同事的,没有删除掉),如下:
后面把删除掉之后,调试就正常了!(但是不影响生成的Winform程序,生成后的Winform可以正常使用的!如果是Release下面有之前的生成的dll,会影响Winform程序的调试的,就是报刚刚那个错误!) 这是个奇怪的问题,望了解其中缘由的大神指教!