【发布时间】:2019-09-20 08:06:52
【问题描述】:
我想使用以下代码使用 memcmp 函数比较 2 字节数组
[DllImport("msvcrt.dll",EntryPoint = "memcmp", CallingConvention = CallingConvention.Cdecl)]
static extern int memcmp(byte[] b1, byte[] b2, long count);
当我在 Windows 上运行我的应用程序时,它运行良好。但是当我在 Linux 上运行它时,它给出了以下异常
无法加载共享库“msvcrt.dll”或其依赖项之一。为了帮助诊断加载问题,请考虑设置 LD_DEBUG 环境变量:libmsvcrt.dll: cannot open shared object file: No such file or directory
下面是docker文件
FROM microsoft/dotnet:2.2-sdk AS build-env
WORKDIR /app
COPY *.csproj ./
COPY NuGet.Config ./
RUN dotnet restore
# copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out
# build runtime image
FROM microsoft/dotnet:2.2-runtime
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "XXX.dll", "YYY.dll"]
请告诉我应该使用什么?
【问题讨论】:
-
恕我直言,从 .net 应用程序调用外部 dll 以比较两个字节数组似乎有些愚蠢。
-
为了性能我需要使用这个功能。
-
看起来真的很想成为
Span<T>.SequenceCompareTo -
以“ms”开头的名称很可疑,看起来像 Microsoft DLL,因此它是特定于平台的(仅限 Windows)。
-
@500-InternalServerError 告诉 npm-community/javascript-'developers'