我在VB6应用程序中遇到了以下行.
mobjParentWrkBk.ExcelWorkBook.Application.Selection.Insert Shift:=xlToRight
Run Code Online (Sandbox Code Playgroud)
不幸的是谷歌和其他搜索引擎并不是很有用,因为它们似乎省略了:=部分.
什么是C#等价物?
在为J2ME编写游戏时,我们遇到了一个使用java.lang.Integer.parseInt()的问题
我们有几个常量值定义为十六进制值,例如:
CHARACTER_RED = 0xFFAAA005;
Run Code Online (Sandbox Code Playgroud)
在游戏过程中,值被序列化并通过网络连接接收,作为十六进制值的字符串表示形式.为了将其解析回int,我们不成功地尝试了以下内容:
// Response contains the value "ffAAA005" for "characterId"
string hexValue = response.get("characterId");
// The following throws a NumberFormatException
int value = Integer.parseInt(hexValue, 16);
Run Code Online (Sandbox Code Playgroud)
然后我运行了一些测试并尝试了这个:
string hexValue = Integer.toHexString(0xFFAAA005);
// The following throws a NumberFormatException
int value = Integer.parseInt(hexValue, 16);
Run Code Online (Sandbox Code Playgroud)
这是实际代码的例外:
java.lang.NumberFormatException: ffaaa005
at java.lang.Integer.parseInt(Integer.java:462)
at net.triadgames.acertijo.GameMIDlet.startMIDlet(GameMIDlet.java:109)
Run Code Online (Sandbox Code Playgroud)
我必须承认,这让我感到困惑.查看parseInt代码,当被解析的数字"越过""负/正边界"时,似乎抛出了NumberFormatException(也许有人可以用右边的行话来编辑?).
这是Integer.parseInt函数的预期行为吗?最后我不得不编写自己的十六进制字符串解析函数,我对提供的实现非常不满意.
换句话说,我期望让Integer.parseInt()在整数误导的十六进制字符串表示上工作吗?
编辑:在我最初的帖子中,我写了0xFFFAAA005而不是0xFFAAA005.我已经纠正了这个错误.
这是场景:
存储在 SVN 中的 AC# Windows 应用程序项目用于创建可执行文件。通常,构建服务器处理构建过程并定期创建供测试使用的构建。在这个特定的实例中,我被要求修改特定的构建并创建可执行文件。
我不完全确定构建服务器是否修改了项目文件,但我知道它会在用于编译可执行文件的源代码的 SVN 中创建一个标记。使用该标签,我在第二台机器(开发机器)上检查了代码。然后我在开发机器上编译了源代码。
执行时,在开发计算机上编译的应用程序的功能与构建服务器编译的应用程序的功能并不完全相同。例如,在测试机器上,应用程序检测到 DateTime Parse 执行。但是,构建机器的可执行文件不会抛出任何异常。如果我在开发计算机上运行可执行文件,则不会引发异常。
总而言之,两台机器理论上都使用相同的源代码和项目。
开发机器的可执行文件只能在开发机器上运行。构建机器的可执行文件适用于每台机器,包括开发机器。
计算机的区域设置或时区是否存储在编译的可执行文件中?知道什么可能导致此行为或如何检查可执行文件以找到可能的差异并纠正它们?
不幸的是,我无法使用测试机并为其附加调试器。只要我能,我就会的。
我们有一个包含ActiveX WebBrowser控件的Windows应用程序.作为此应用程序的常规操作的一部分,将对ActiveX WebBrowser控件显示的页面进行修改.部分修改涉及在加载到ActiveX WebBrowser中的网页中设置JavaScript变量.
我们需要在C#中初始化这个变量(最初,VB6代码正在初始化值).此变量的值是COM可见的类对象.
但是,为简单起见,我们将问题缩小为设置字符串值.我们的原始页面涉及框架等,但在这样的页面中出现相同的问题:
<HTML>
<HEAD>
<TITLE>Test</TITLE>
<SCRIPT type="text/javascript">
var field = 'hello world';
</SCRIPT>
</HEAD>
<BODY>
<input type="button" value="See field" onclick="javascript:alert(field);"/>
</BODY>
</HTML>
Run Code Online (Sandbox Code Playgroud)
我们想要访问字段变量并为其赋值.在VB6中,代码非常简单:
doc.Script.field = 'newValue'
Run Code Online (Sandbox Code Playgroud)
但是,在C#中我们不得不求助于其他技巧,如下所示:
Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateSet(Script, null, "field",new object[] { "newValue"},null, null);
Run Code Online (Sandbox Code Playgroud)
页面的要点是测试我们的变量是否由C#正确分配.单击该按钮应该产生C#注入的任何新值.因此,例如,单击页面中的按钮,我们会收到一条警告:"newValue".
这是第一次工作,但如果我们重新加载页面它不起作用.在后续调用中,我们无法设置变量的值field
.
以前有没有人有过做这种操作的经验?