我们在 Micro Focus Cobol.Net 中有一些系统,我们正在考虑将其转换为 C#。
我们尝试在反射器中打开 dll,但随后我们只得到 C 代码。
有人建议如何执行此操作吗?
当我在反射器中选择 C# 时,我得到的代码如下所示:
meminit(&(this._MF_OSBLOCK[0]), 0x20, 4);
this._MF_OSBLOCK[4] = 0x30;
this._MF_OSBLOCK[5] = 0x30;
this._MF_OSBLOCK[6] = 0x30;
this._MF_OSBLOCK[7] = 0x30;
meminit(&(this._MF_OSBLOCK[8]), 0x20, 30);
memcpy(&(this._MF_OSBLOCK[0x26]), &(_MF_LITBLOCK[0]), 2);
int num2 = 0;
do
{
memcpy(&(this._MF_OSBLOCK[40 + num2]), &(_MF_LITBLOCK[0]), 2);
}
while ((num2 += 2) < 0xc6);
memcpy(&(this._MF_OSBLOCK[240]), &(_MF_LITBLOCK[2]), 4);
Run Code Online (Sandbox Code Playgroud) 我正在使用 Visual Studio 2010 MFC 构建 C++ 程序。我的程序调用一个不属于项目的 DLL,并且它接受 char*。我有一个函数可以获取 LPCTSTR 格式的字符串。我已经在谷歌上搜索了大约两个小时,但没有找到解决方案。如何将 MFC LPCTSTR 转换为 char*。我发现的所有内容要么不起作用,要么只是无法编译。
我被变量格式困住了。我知道这是一个愚蠢的问题,但我已经思考了两个小时,我已经失去了理智。
问题是:
我有:
command.Data = new ushort[] { xx, yy, zz };
Run Code Online (Sandbox Code Playgroud)
我需要做的是:
ushort zz = System.Math.Tan(c1AngleX);
Run Code Online (Sandbox Code Playgroud)
但是 System.Math.Tan 的输出是“double”,所以我有点不能在那里有“ushort”。
我试过这个
ushort zz = (Convert.ToUInt16 (System.Math.Tan(c1AngleX));
Run Code Online (Sandbox Code Playgroud)
但这不起作用。(无法将“双精度”转换为“字符串”)
有什么方法可以将“double”转换为“ushort”吗?
(如果这个问题“太琐碎”,我很抱歉,但我真的被困住了)
感谢@ don-jayamanne和@dbc提到我的JSON需要格式良好
这是我的改述问题:
我们的工作应用程序是使用JSON.NET来创建JSON字符串.
这是我正在尝试创建的JSON字符串:
{
"RouteID": "123321213312",
"DriverName": "JohnDoe",
"Shift": "Night",
"ItineraryCoordinates": [
[
9393,
4443
],
[
8832,
3322
],
[
223,
3432
],
[
223,
3432
]
]
}
Run Code Online (Sandbox Code Playgroud)
这是我编写的用于创建上述JSON字符串的错误代码:
writer.WriteStartObject();
writer.WritePropertyName("RouteID");
serializer.Serialize(writer, routeID);
writer.WritePropertyName("DriverName");
serializer.Serialize(writer, driverName);
writer.WritePropertyName("Shift");
serializer.Serialize(writer, shift);
writer.WritePropertyName("ItineraryCoordinates");
ItineraryCoordinatesCollectionFactory tpCollFac = new ItineraryCoordinatesCollectionFactory();
ItineraryCoordinates anItineraryCoordinates;
StringBuilder coordSB = new StringBuilder();
IList<TimePeriod> ItineraryCoordinatesCollection = tpCollFac.createItineraryCoordinatesCollection();
for (int j = 0; j < ItineraryCoordinatesCollection.Count(); j++)
{
anItineraryCoordinates = ItineraryCoordinatesCollection[j];
writer.WriteStartObject();
writer.WritePropertyName("nested");
coordSB.Append(anItineraryCoordinates.StartTimePeriodCoordinate.X.ToString());
coordSB.Append(" , ");
coordSB.Append(anItineraryCoordinates.StartTimePeriodCoordinate.Y.ToString()); …Run Code Online (Sandbox Code Playgroud) 如何将 PowerShell 中的简单哈希数组转换为 HTML 表?
$array = @{
"Name" = "My Name"
"Surname" = "My Surname"
"Address" = "My Address"
"DateOfBirth" = "My Date Of Birth"
"Hobby" = "My Hobby"
"Age" = "My Age"
}
Run Code Online (Sandbox Code Playgroud)
然后继续添加行?有没有人以前实现过这个?下面我将根据几个在线论坛提供我迄今为止尝试过的示例:
[System.Management.Automation.PSCustomObject]$array | ConvertTo-Html
-Fragment
Run Code Online (Sandbox Code Playgroud)
无法将“System.Collections.Hashtable”类型的“System.Collections.Hashtable”值转换为“System.Management.Automation.PSCustomObject”类型。在 line:0 char:0 + [System.Management.Automation.PSCustomObject]$array | ConvertTo-Html ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [], RuntimeException +fullyQualifiedErrorId : ConvertToFinalInvalidCastException
New-Object psobject -Property $array | ConvertTo-Html -Fragment
Run Code Online (Sandbox Code Playgroud)
System.Collections.DictionaryEntry System.Collections.DictionaryEntry System.Collections.DictionaryEntry System.Collections.DictionaryEntry System.Collections.DictionaryEntry System.Collections.DictionaryEntry
$array | Select 'Name','Surname','Address','DateOfBirth','Hobby', 'Age' | …Run Code Online (Sandbox Code Playgroud) @Hallgrim在这里找到了CodeDom 的这种方法:
private static string ToLiteral(string input)
{
using (var writer = new StringWriter())
{
using (var provider = CodeDomProvider.CreateProvider("CSharp"))
{
provider.GenerateCodeFromExpression(new CodePrimitiveExpression(input), writer, null);
return writer.ToString();
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在我们需要对 .NET Core 进行 Roslyn 重制。或者我们应该手动替换符号?
我正在尝试编写Int 和 Priority 之间的类型转换器。这是一个房间数据库。
class PriorityConverter {
companion object {
@TypeConverter
@JvmStatic
fun intToPriority(number: Int?): Priority? = when (number) {
is 1 -> Priority.Low
is 2 -> Priority.Medium
is 3 -> Priority.High
else -> Priority.Low
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题是我收到以下错误。
预期类型
可能是什么问题?
我需要将几个视频转换为动画 webp 格式,但我没有找到可以处理它的软件。有一些在线工具,但它们要么是付费的,要么有低分辨率和 fps 等限制。
我有从中读取uint64_tval 的二进制文件(使用 little-endian)。现在我想将其转换uint64_t为double(不仅仅是转换,而是double我从文件中输入的数字)。所以应该有相同的位表示。我该怎么做?
#include<stdio.h>
#include<string.h>
void baseconversion(char s[20], int, int);
main()
{
char s[20];
int base1, base2;
printf("Enter the number and base:");
scanf("%s%d", s, &base1);
printf("Enter the base to be converted:");
scanf("%d", &base2);
baseconversion(s, base1, base2);
}
void baseconversion(char s[20], int b1, int b2)
{
int count = 0, r, digit, i, n = 0, b = 1;
for(i = strlen(s) - 1; i >= 0; i--)
{
if(s[i] >= 'A' && s[i] <= 'Z')
{
digit = s[i] - '0' - 7; …Run Code Online (Sandbox Code Playgroud)