我正在用C#编写一个多语言IDE.现在,它作为一个功能合理的编辑器.但是,我现在正在努力添加编译和运行Java代码的能力(我知道在C#中编写这个代码听起来很愚蠢,但我更喜欢使用C#,我需要Java支持学校课程).
在此背景之后,问题是:从C#编译Java代码的最佳方法是什么?现在,我正在System.Diagnostics.Process
上课.基本上,我调用编译器的方式与从命令行调用javac的方式相同.这是我当前实现的一个粗略示例:
ProcessStartInfo buildInfo = new ProcessStartInfo();
buildInfo.WorkingDirectory = Path.GetDirectoryName(sourcePath);
buildInfo.RedirectStandardOutput = true;
buildInfo.RedirectStandardError = true;
buildInfo.UseShellExecute = false;
Process buildProcess = Process.Start(buildInfo);
Run Code Online (Sandbox Code Playgroud)
我重定向标准输出和错误,因为稍后应用程序捕获它们以确定编译是否成功.有一个更好的方法吗?感觉有点草率,我想知道我是否在俯视某些东西.
我正在寻找一个学习MASM代码的良好在线资源.我在那里看到了一些不错的东西(最常被引用的东西是汇编语言的艺术),但大多数都不教我需要的东西(我想直接学习MASM,而不是HLA或任何其他编译语言).有谁知道什么?我会得到一本书,但我现在不在一个书籍可供选择的地方.
在我正在编写的Windows窗体应用程序的主窗体上,我有一个带有左右面板的SplitContainer.右侧面板中将其锚点设置为右侧(或左侧和右侧)的控件不会保留在我将它们放入设计器的位置.控件会定期向左移动一个像素(在设计器中,而不是在运行时).对于左右两侧锚定的控件,控件将缩小,但对于刚刚固定的控件,整个控件向左移动,同时保持相同的大小.有谁知道为什么会发生这种情况或如何避免它?现在,我唯一能做的就是定期将它们移回去.
注意:我的Windows窗体设计器当前设置为LayoutMode = SnapToGrid,Snap to Grid = true,网格大小为5 x 5.
编辑:我终于找到了在Visual Studio 2012中重现此问题的方法.使用我正在使用的相同设计器设置创建一个新的Windows窗体项目,并在表单中添加一个SplitContainer.将其停靠以填充(或使用锚点到所有侧面).现在,将SplitterDistance设置为100,将SplitterWidth设置为5.向右侧SplitPanel添加一个按钮,并将其锚点设置为Bottom and Right.移动按钮使其右边缘与SplitPanel侧面齐平,然后关闭并打开表格.奇迹般地,按钮向左移动了一个像素.
这是关闭它之前的样子(在这种情况下按钮的位置是105,175):
这是你关闭并重新打开后的样子(现在按钮的位置是104,175):
我希望这个例子可以帮助任何人重现这个问题.
对于我使用PHP构建的YouTube网络应用程序,我有简单的视频播放器,嵌入了一个<iframe>
,然后是一个<div>
有关当前加载的视频(描述,ID,标题等)的信息.
A <ul>
包含从YouTube使用PHP gData API获取的视频列表,每个视频都<li>
包含一个链接,用于激活JavaScript以将视频播放器更改为正确的视频,还可以更新页面上的视频信息.
问题在于:gData
为视频描述返回多行,非转义序列,但在JavaScript中不起作用.我应该如何删除换行符并将其替换为<br>
(注意它们不是换行符\n
,它们是实际的换行符和换行符).
我还必须逃避在JavaScript字符串中无效的其他内容,例如撇号字符'
.做这个的最好方式是什么?