我有个问题.我有一个使用线程的VCL应用程序.该线程进行一些计算,并通过Synchronize()调用MainForm的方法.一切正常,我有一个"开始"按钮,它创建并运行线程和一个"停止"按钮,停止并释放它.没有错误,没有任何错误.
但由于某些原因,当我关闭应用程序并且我运行该线程时,我得到了一个EOSError 1400 - Invalid window handle.我已经打破了OnClose程序,我在那里做的唯一事情是保存一个ini文件,没有错误,当我进一步追踪(使用F7)时,我到达最后(Application.Run; end.),在"调用"后end.我得到错误,因此没有特定的代码行提升它.
我希望这个问题有点清楚,我希望它是可以解决的,因为忽略错误似乎有点不洁净.
谢谢inb4
回答
当调用线程的Execute方法时,我发生了这个错误,它看起来像这样:
procedure TRunThread.Execute;
var (...)
begin
while not Terminated do begin
(...)
MainForm.Memo1.Lines.Add('Some text'); // Even though this call worked fine during
//the application running, it caused errors on shutting the app down.
// For acccessing GUI elements, it's necessary to use Synchronize()
(...)
end;
end;
Run Code Online (Sandbox Code Playgroud) 编译时我不断收到这个奇怪的错误信息.很难调试.(顺便说一句:示例中的不透明度是混合)
但我坚持下去
> 59| .red { opacity 0.4 }
expected "indent", got "eos"
Run Code Online (Sandbox Code Playgroud)
我试过了
.red { opacity(0.4) }
.red { opacity(0.4); }
Run Code Online (Sandbox Code Playgroud)
没别的了.
我可以安装 numpy 或 pandas,但无法在 cmd、jupyter notebook 或 sublime text 中导入它们。(但是,我可以在 Pycharm 中安装并导入它们)。
我已经搜索了不同的论坛/stackoverflow,寻找答案,但最常见的原因,如架构不匹配(我使用 Python 32 位)或路径中的空格似乎不是这里的问题。我尝试过重新安装Python,但并没有解决问题。
该错误总是在“ctypes”lib 中指出,这似乎是 numpy 模块的具体问题。当我尝试导入 pandas/matplotlib 时,导入 numpy 失败。
>>> import numpy
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\jadwi\AppData\Roaming\Python\Python37\site-packages\numpy\__init__.py", line 142, in <module>
from . import core
File "C:\Users\jadwi\AppData\Roaming\Python\Python37\site-packages\numpy\core\__init__.py", line 23, in <module>
WinDLL(os.path.abspath(filename))
File "C:\Users\jadwi\AppData\Local\Programs\Python\Python37-32\lib\ctypes\__init__.py", line 356, in __init__
self._handle = _dlopen(self._name, mode)
OSError: [WinError 193] %1 is not a valid Win32 application
>>> help('numpy')
problem in numpy …Run Code Online (Sandbox Code Playgroud) 每当我尝试使用命令运行tensorboard时:
tensorboard --logdir=logs/ --host=127.0.0.1导航到日志目录后,在命令提示符下出现此错误:
OSError: [Errno 22] Invalid argument。我正在使用TensorBoard 1.13.1版,我在代码中使用了以下命令:
tensorboard = TensorBoard(log_dir='<My/Path/To/Tensorflow/Log/Directory>')
并使用以下命令调用它:
`clf.fit(X,y,batch_size=30,
epochs=15,
validation_split=0.4,
callbacks=[tensorboard]
)`
Run Code Online (Sandbox Code Playgroud) 编辑:
错误确实在处理中; parseError也失败了,揭示了真正的错误; 请参阅该错误的后续问题.
老问题:
不知何故,有时下面的代码在使用Delphi XE中的msxml单元加载XML时会生成异常.它在使用MSXML6的Windows XP Professional x86 SP3和使用MSXML6的Windows 7 Ultimate x64 SP1上失败.
procedure TXMLEOSErrorTestCase.Test;
var
XmlDocument: IXMLDOMDocument3;
XmlFileName: string;
begin
XmlDocument := CoFreeThreadedDOMDocument60.Create();
XmlFileName := TPath.Combine(TPath.GetDirectoryName(ParamStr(0)), '1-Normal.xml');
if not XmlDocument.load(XmlFileName) then
RaiseLastOSError();
end;
Run Code Online (Sandbox Code Playgroud)
在XmlDocument.load方法期间发生此错误:
EOSError at $00423B2D
A call to an OS function failed
Run Code Online (Sandbox Code Playgroud)
我将XML修剪为下面的XML.
这是XML文件的十六进制转储:
000000: 3C 3F 78 6D 6C 20 76 65 72 73 69 6F 6E 20 3D 20 <?xml version =
000010: 22 31 2E 30 22 20 65 …Run Code Online (Sandbox Code Playgroud) eoserror ×5
delphi ×2
python ×2
compilation ×1
delphi-xe ×1
msxml6 ×1
numpy ×1
stylus ×1
tensorboard ×1
tensorflow ×1