RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-276432

return's questions

Martin Hope
return
Asked: 2022-08-21 23:32:45 +0000 UTC

如何防止编译导入?

  • 0

我需要编译.test.ts文件,但同时我已经编译了主项目,我不需要每次更改测试时都重新构建它。我试着这样做:

tsconfig.test.json

{
    "extends": "./tsconfig.dev.json", // компилирует всё, кроме .test.ts
    "include": ["src/**/*.test.ts"],  // используем тот же конфиг, но только для .test.ts
    "exclude": [],                    //
    ...
}

但是尽管我在配置中指出我只想编译.test.ts文件,但它也编译了import. 我怎样才能确保tsc我相信“在地板上”导入的脚本已经被编译?


src/a.ts

// какой-то библиотечный код

src/a.test.ts

import {
    // ...
} from './a' // импорт, из-за которого a.ts повторно компилируется

// какой-то тестирующий код

编译前(我已经用tsconfig.dev.json, 用tsconfig.test.json- 还没有编译过):

projroot
├─...
├─tsconfig.dev.json
├─tsconfig.test.json
├─src/
│ ├─a.test.ts
│ └─a.ts
└─dist/
  └─a.js             // результат компиляции tsconfig.dev.json

编译后(使用 current tsconfig.test.json):

projroot
├─...
├─tsconfig.dev.json
├─tsconfig.test.json
├─src/
│ ├─a.test.ts
│ └─a.ts
└─dist/
  ├─a.test.js        // результат компиляции tsconfig.test.json
  └─a.js             // tsconfig.test.json также задевает и этот файл, т.к. он импортируется в
                     // a.test.ts, заставляя его повторно компилироваться, хотя его нет в include

编译后(修改后tsconfig.test.json):

projroot
├─...
├─tsconfig.dev.json
├─tsconfig.test.json
├─src/
│ ├─a.test.ts
│ └─a.ts
└─dist/
  ├─a.test.js        // результат компиляции tsconfig.test.json
  └─a.js             // результат компиляции tsconfig.dev.json
typescript node.js
  • 1 个回答
  • 26 Views
Martin Hope
return
Asked: 2022-06-24 04:09:49 +0000 UTC

为什么 MinGW 会破坏 RBP?

  • 1

我想编写自己的堆栈步行器。我写了它,但是我遇到了引入从另一个线程读取堆栈寄存器的能力的问题。我的示例实现:

...
if (thrd) {
    CONTEXT ctx;
    ctx.ContextFlags = CONTEXT_INTEGER;
    GetThreadContext(thrd, &ctx);
    rbp = ctx.Rbp;
} else {
    register uintptr_t _rbp asm("rbp");
    rbp = _rbp + 0x480; // добавление
}
...

如果我们从另一个流中读取,那么我们为上下文分配空间,然后我们读取它。但仅在添加此代码后,所有测试都崩溃并停止工作:根本没有显示跟踪,但它们是针对当前线程的(即我只是用 运行旧测试thrd == 0)。最后,我得出的结论是,在设置寄存器的函数的序言中,MinGW 生成了一个跟踪。编码:

pushq   %rbp
subq    $1296, %rsp
leaq    128(%rsp), %rbp

这是意料之中的:

pushq   %rbp
movq    %rsp, %rbp
subq    ..., %rsp

出于某种原因,他将第 3 行归因于,尽管他不应该这样做,结果 RBP 被扭曲了。在代码中,我添加到他的工作副本0x480中,一切恢复正常。

第 3 行仅在在 下的堆栈上分配内存时出现CONTEXT,否则不需要添加。

我认为这是某种另一种优化或类似的东西。以下是我编译时使用的选项:

-g -shared -fPIC -mwindows -march=x86-64

开启和关闭-g,没有任何变化。如何摆脱它leaq?


#include <windows.h>
#include <stdio.h>

void f() {
    CONTEXT a;
    CONTEXT b;
    register uintptr_t rbp asm("rbp");

    printf("rbp: %p *rbp: %p\n", rbp, *(void **)rbp);
}
int main() {
    f();
}

这是同样的例子:你注释掉上下文堆栈上的内存分配行,你会得到不同的输出。

只有在两个上下文都被注释掉的情况下*rbp才会位于堆栈区域,在其他情况下它等于某种垃圾。

结论

rbp: 000000000061FDF0 *rbp: 000000000061FE20 // закомменчены оба
rbp: 000000000061F980 *rbp: 0000000000702520 // закомменчен 1
rbp: 000000000061F4B0 *rbp: 0000000000060000 // ни один не закомменчен
c
  • 1 个回答
  • 10 Views
Martin Hope
return
Asked: 2022-03-24 01:51:46 +0000 UTC

改进的部分<T>

  • 1

是否可以使用此签名创建类型:

type Optional<T> = ...

...这可以转换:

type A = {
    a: number
    b: string[]
}

…在里面:

type Optional_A = {
    a?: number | null
    b?: (string | null | undefined)[] | null
}

圣的转换a没有问题:

type BadOptional<T> = { [K in T]?: K | null }

阵列的主要问题。如果 TypeScript 支持这样的东西:

type ImpossibleOptional<T> = {
    [K in T]?: (K extends U[]
        ? (U | null | undefined)[]
        : K) | null
}

......解决方案会自行找到,但没有。

массивы
  • 1 个回答
  • 10 Views
Martin Hope
return
Asked: 2022-09-28 19:23:15 +0000 UTC

TypeScript 中的 Object.entries

  • 1

如何转换这种类型:

{
    a: number
    b: string
    c: number
}

在那里面:

[['a', number], ['b', string], ['c', number]]

那些。效果是 1 in 1 as from Object.entries,只是代替 sv-in 他们的类型的值。

javascript
  • 1 个回答
  • 10 Views
Martin Hope
return
Asked: 2022-04-26 02:09:48 +0000 UTC

创建自己的 npx 库时的错误是什么

  • 0

我需要创建自己的 npx 库。一切正常...但仅使用预安装的软件包:

npm i -g pkg
npx pkg some args

如果你只是输入npx pkg some args,本着npx create-react-app,那么它会要求你安装包,然后抛出一个错误:

"pkg" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

lib/index.js

#!/usr/bin/env node

console.log(process.argv.slice(2).join(' ')); // упрощено до предела, т.к. сам код рабочий

package.json

{
  // name, version, description, keywords и проч. сгенерированы анкеткой
  "main": "lib/index.js"
  "bin": {
    "pkg": "lib/index.js" // сюда можно хоть `abrakadabra` вставить: всё равно не работает
  },
  "scripts": {
    // build скрипты
    "prepare": "del /q lib && npm run build",
    "prestart": "npm run build",
    "start": "node lib/index"
  },
  "dependencies": {
    "@types/node": "^14.14.0",
    "@typescript-eslint/parser": "^4.22.0",
    "typescript": "^4.2.0"
  }
}

我查看了其他存储库,例如我自己create-react-app和cowsay,但没有发现任何根本差异。

实际上,问题是:如何纠正这种误解


我在 Windows 上写,#!usr/bin/env它看起来像某种 Unix 主题,也许是这样?

javascript
  • 1 个回答
  • 10 Views
Martin Hope
return
Asked: 2022-02-27 00:16:57 +0000 UTC

为什么 C 认为我有 Windows Server 2003?

  • 0

当我在寻找问题的解决方案时,我无意中发现了这行代码,它引入了一个昏迷状态:

#define WINVER 0x0502

我有 Windows 10,但此代码来自 Windows Server 2003(文档)......

编译器 MinGW-W64。Windows 10 随购买的机器一起提供,即 执照。

声明宏WINVER头本身winresrc.h。值_WIN32_WINNT与 相同WINVER。

c
  • 1 个回答
  • 10 Views
Martin Hope
return
Asked: 2020-06-24 23:15:05 +0000 UTC

日均线

  • 1

我有一张这样的桌子:

┌─────────────────────┐                  ┌─────────────┐
│ Время               │                  │ Время       │
├─────────────────────┤                  ├─────────────┤
│ <время> 22 июн 2020 │                  │ 22 июн 2020 │
├─────────────────────┤                  ├─────────────┤
│ <время> 22 июн 2020 │                  │ 22 июн 2020 │
├─────────────────────┤                  ├─────────────┤
│ <время> 22 июн 2020 │                  │ 22 июн 2020 │
├─────────────────────┤                  ├─────────────┤
│ <время> 23 июн 2020 │  Преобразование  │ 23 июн 2020 │
├─────────────────────┤—————————————————→├─────────────┤
│ <время> 23 июн 2020 │                  │ 23 июн 2020 │
├─────────────────────┤                  ├─────────────┤
│ <время> 24 июн 2020 │                  │ 24 июн 2020 │
├─────────────────────┤                  ├─────────────┤
│ <время> 24 июн 2020 │                  │ 24 июн 2020 │
├─────────────────────┤                  ├─────────────┤
│ <время> 24 июн 2020 │                  │ 24 июн 2020 │
├─────────────────────┤                  ├─────────────┤
│ <время> 24 июн 2020 │                  │ 24 июн 2020 │
└─────────────────────┘                  └─────────────┘

我需要“切断”时间,让左边的桌子变成右边的桌子。然后是唯一单元格数数组的平均值;即有 3 次“2020 年 6 月 22 日”、2 次“2020 年 6 月 23 日”和 4 次“2020 年 6 月 24 日”,结果将为(3 + 2 + 4) / 3 = 3.

如何实施?主要问题是我无法遍历/枚举左侧表格的所有元素以将其转换为右侧表格。

excel
  • 1 个回答
  • 10 Views
Martin Hope
return
Asked: 2020-05-21 20:14:38 +0000 UTC

.NET 规范

  • 3

我很久以前就遇到过这样的类型CLSCompliantAttribute。思路很简单:限制高级语言的接口,让相对低级的语言与之交互。但是当我从 .NET Framework 切换到 .NET Core 时,结果发现 Microsoft 的扩展(按类型Microsoft.Extensions.Configuration)不符合 CLS。

那么一个合乎逻辑的问题就出现了:既然CLSCompliantAttribute连它的创造者都不使用它,为什么在 2020 年还需要它呢?

有没有没有它就活不下去的语言?

.net
  • 1 个回答
  • 10 Views
Martin Hope
return
Asked: 2020-04-26 21:13:17 +0000 UTC

什么是只读序列?

  • 4

是什么ReadOnlySequence?我知道为什么以及如何使用Spanand Memory,但我不知道为什么需要这个序列。一些SequencePosition,ReadOnlySequenceSegment。我查看了如何使用它们并看到了类似这样的内容:

ReadOnlySequence<byte> bytes = ...;
// ...
foreach (var _byte in bytes)
{
   if (_byte.Span[0] == 0x00)
   {
      // ...
   }
}

问题是,还有什么比这更糟糕的:

ReadOnlySpan<byte> bytes = ...;
// ...
foreach (var _byte in bytes)
{
   if (_byte == 0x00)
   {
      // ...
   }
}
c#
  • 1 个回答
  • 10 Views
Martin Hope
return
Asked: 2020-02-09 20:05:08 +0000 UTC

如何从控制台读取一个字符?

  • 0

我有一个程序:

char getChar() {
    return /*smth*/;
}

printf("INPUT: ");
char chr = getСhar();
printf("OUTPUT: %c", chr);

...问题是:它应该返回getChar什么?我需要在按下键盘上的按钮后,立即读取按下的字符。选项本质上是 1 - getchar(不要与getChar- getChar- my function 混淆,而是getchar- function from stdio.h)。但是在使用它时,我可以输入多个字符,例如:

INPUT: qwerty1234567890
OUTPUT: q

我知道.NET( Console.ReadKey)中有这样一个函数,看了它的实现,才发现这里需要WinAPI和一个函数ReadConsoleInput。这是我使用它的方式(没有检查):

char getChar() {
    INPUT_RECORD inputRecord; // запись о введённом символе
    unsigned long readedCharCount; // кол-во прочитанных символов

    ReadConsoleInput(
        GetStdHandle(STD_INPUT_HANDLE), // возвращаем дескриптор ввода консоли
        &inputRecord,
        1,
        &readedCharCount);

    return inputRecord.Event.KeyEvent.uChar.AsciiChar; // извлекаем из записи нажатый символ
}

但是当我运行上面的程序(getchar-> getChar)时,发生了难以形容的事情。如果你一步一步运行它,那么当你输入函数时,ReadConsoleInput程序会冻结,我无法在控制台中输入任何内容。如果在这个函数后面放一个断点,那么控制台就不让我输入字符了,你可以找到那个inputRecord.EventType == 16,但是应该等于1(KEY_EVENT)。此外,没有一个xxx_EVENT带有 value的宏16!我怎么理解这一点,我做错了什么?

c
  • 1 个回答
  • 10 Views
Martin Hope
return
Asked: 2020-11-05 19:17:20 +0000 UTC

App.config 的问题

  • 0

在开发一个简单的应用程序(为我自己)时,我appSettings在文件部分添加了App.config1 个元素:

<appSettings>
    <add key="..." value="1;0;1;0"/>
</appSettings>

此元素包含一些设置。但问题是该部分appSettings是NamedValueCollection,即上面的标签是

<appSettings>
    <add key="..." value="1"/>
    <add key="..." value="0"/>
    <add key="..." value="1"/>
    <add key="..." value="0"/>
</appSettings>

而且我需要它不要1;0;1;0被“划分”为 4 个值,而是要成为一个整体。如何做到这一点?

c#
  • 1 个回答
  • 10 Views
Martin Hope
return
Asked: 2020-08-15 02:04:06 +0000 UTC

PS和反光板问题

  • 1

不知为何,我突然来了兴趣:“类的头部是怎么回事System.Management.Automatization.PowerShell(dll的路径- )?”。C:\Program Files (x86)\Reference Assemblies\Microsoft\WindowsPowerShell\v*версия PS*\System.Management.Automatization.dll

他为什么不重要,重要的是他是什么。

我——就像一个真正的海盗——从JetBrains( dotPeek) 拿了反光板并打开了这个图书馆。事实证明,所有方法要么是空的,要么如果它们返回一个值,则包含一个注释:“ Stub method (only 'ret' instruction)”,-据我了解,这些是某种存根方法。这绝对是关于所有课程的。


它是什么以及一般如何编译“第二类(带注释)”方法?什么是存根方法,为什么需要它们?是dll加密,反射器错误还是什么?

c#
  • 2 个回答
  • 10 Views
Martin Hope
return
Asked: 2020-06-15 22:30:28 +0000 UTC

Uri 像 Wpf 中的“pack”

  • 1

我有一个带有连接程序集的控制台应用程序PresentationCore(测试在这里完成 - 它更容易;我在窗口应用程序中检查了它,结果是相同的)和这个类Program:

using System;
using System.Net;
using System.IO.Packaging;

namespace MyApp
{
    using static WebRequest;

    class Program
    {
        static void Main()
        {
            RegisterPrefix("pack", new PackWebRequestFactory()); // префикс регистрируется (можно увидеть в режиме отладки)

            var uri = new Uri("pack://application:,,,/Resource.resx");

            using (var client = new WebClient())
            using (var stream = client.OpenRead(uri)) // ошибка - не удалось найти файл resource.resx
            {
                // Using stream...
            }
        }
    }
}

文件Resource.resx存在且路径匹配(如果替换.resx为.xaml并使用ResourceDictionary,则找到文件,这很奇怪(由于“令人反感”的内容会飞出错误,但没关系-找到文件)) . 我需要这个用于一个库,有一点与资源和 uri 相关的“低级”。我深入研究了反射器(类ResourceDictionary),一切似乎都是一样的,只有.xaml文件。如何解决这个问题呢?

c#
  • 1 个回答
  • 10 Views
Martin Hope
return
Asked: 2020-05-24 00:42:47 +0000 UTC

资源属性为空

  • 0

我正在创建一个 wpf 应用程序,我有这些代码行:

public MainWindow()
{
    Background = (Brush)FindResource("Background");
}

这是窗口文件:

<Window
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:MyApp"
        mc:Ignorable="d"
        Title="MainWindow" Height="800" Width="450" WindowStartupLocation="CenterScreen">
    <Window.Resources>
        <ResourceDictionary Source="Resources/MainWindow.xaml"/>
    </Window.Resources>
    <Grid>
    </Grid>
</Window>

这是字典本身:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:local="clr-namespace:MyApp">
    <ImageBrush x:Key="Background" ImageSource="Sources/..."/>
</ResourceDictionary>

我的背景没有定义。即,不应用更改。但如果你这样做:

<Window
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:MyApp"
        mc:Ignorable="d"
        Title="MainWindow" Height="800" Width="450" WindowStartupLocation="CenterScreen"
        Background="{StaticResource Background}">
    <Window.Resources>
        <ResourceDictionary Source="Resources/MainWindow.xaml"/>
    </Window.Resources>
    <Grid>
    </Grid>
</Window>

那么一切都会奏效。如何修复它以使其在代码和标记中都有效。调试时发现Count该属性Resources等于零。一切都好。奇怪的。

c#
  • 2 个回答
  • 10 Views
Martin Hope
return
Asked: 2020-05-09 15:10:43 +0000 UTC

导航:元素未显示之前

  • 0

问题

这是html代码:

<!DOCTYPE html>
<html>
<head>
    <meta content="text/html; charset=utf-8" />
    <link href="~/styles/style.css" rel="stylesheet" />
</head>
<body>
    <nav class="menu">
        <ul>
            <li><a href="#">Пункт 1</a></li>
            <li><a href="#">Пункт 2</a></li>
            <li><a href="#">Пункт 3</a></li>
        </ul>
    </nav>
</body>
</html>

这是css文件中的代码~/styles/style.css:

@import url('https://fonts.googleapis.com/css?family=Roboto|Suez+One');

* {
    margin: 0;
    padding: 0;
    font-family: 'Roboto', serif;
    background: #fff;
    color: #000;
    outline: none;
    border: none;
}

body {
    width: 100%;
    height: 100%;
}

nav.menu {
    width: 500px;
    margin: 0 auto;
}

nav.menu:before {
    content: "";
    display: block;
    height: 50px;
    width: 100%;
    background: #0d0d0d;
    position: absolute;
    left: 0;
    top: 0;
    z-index: -1;
}

nav.menu ul {
    margin: 0;
    padding: 0;
    list-style: none;
    height: 50px;
}

nav.menu ul li {
    float: left;
}

nav.menu ul li a {
    color: #f2f2f2;
    display: block;
    height: 50px;
    padding: 0 30px;
    text-transform: uppercase;
    text-decoration: none;
    line-height: 50px;
    transition: 0.5s;
}

nav.menu ul li a:hover {
    background: #909;
}

如果有人不理解这些文件中的水平菜单代码。我在网站cssdeck/labs(http://cssdeck.com/labs)上对其进行了测试,那里一切正常,但在浏览器中却无法正常显示:没有黑条。如果z-index设置为0及以上,则不会显示任何文本。


如何解决?

html
  • 1 个回答
  • 10 Views
Martin Hope
return
Asked: 2020-02-26 23:56:14 +0000 UTC

如何将方法转换为委托

  • 1

我有一个方法:

public static Delegate MethodToDelegate(MethodInfo method)
{
    Delegate d = ...;
    // использовать ТОЛЬКО параметр method и d
    return d;
}

如何d在此方法中创建委托。我知道可以使用方法CreateDelegate,但是我怎么知道委托的类型呢?

c#
  • 1 个回答
  • 10 Views
Martin Hope
return
Asked: 2020-02-24 00:34:40 +0000 UTC

反射。如何通过反射调用泛型方法

  • 0

问题:有(比方说)一些 Foo 方法:

public static T Foo<T>(string str)
{
    return Convert.ChangeType(str, typeof(T)); // пример (тело метода не важно)
}

我可以用反射来称呼它:

MethodInfo foo = type.GetMethod("Foo"); // type - тип, где находится метод Foo
MethodInfo genericFoo = foo.MakeGenericMethod(typeof(string)); // например string
string result = genericFoo.Invoke(null, /* params... */);

但事实是该方法的第一个(也是唯一的)参数MakeGenericMethod有一个“订阅” params,它不允许我MakeGenericMethod通过“插入”一个类型数组来调用该方法:

public static object Bar(Type[] types, MethodInfo foo, object param)
{
    MethodInfo genericFoo = foo.MakeGenericMethod(types); // <- это не работает
    return genericFoo.Invoke(null, new object[] { param });
}

我怎样才能绕过这个限制?有替代方案MakeGenericMethod吗?

c#
  • 1 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5