小编zez*_*000的帖子

"System.Math.Cos"可以返回(浮点)吗?

在C#中,它告诉我如何没有返回浮点数的"Math.Cos"函数.双精度是你可以获得的唯一值,因此强迫你将它投射到浮点数.像这样:
float val = (float)Math.Cos(someVal);

我需要使用浮点数,因为我在Direct3D中做了严格使用浮点数的东西.浮点数在图形世界中更常见(因为它现在是),因为它们是32位.

C#中是否有任何功能我可以使用它只是简单地处理浮点数,如C++可以做?

我不想包装任何C++的东西,因为这需要在XNA和Linux上运行OpenGL.

注意:如果代码没有将double转换为float,那将会很不错.

.net c# math floating-point double

14
推荐指数
3
解决办法
9684
查看次数

C#Mono {new Bitmap("fileName");}只是挂在OSX上

当尝试使用单声道版本的System.Drawing.Bitmap对象在OSX 10.7.3上加载".bmp",".png"或".jpg"时,应用程序只会挂起.我没有得到任何错误,应用程序只是卡在Bitmaps构造函数上...

当我在(Arch)Linux或Windows上运行相同的代码时,一切正常.

public static void Main (string[] args)
{
    using (var bitmap = new Bitmap("/....../image.bmp"))
    {

    }

    Console.WriteLine ("Hello World!");// Never gets here...
}
Run Code Online (Sandbox Code Playgroud)

如果我在调试模式下暂停应用程序,它会打开"反汇编"窗口并显示它卡在这一行:

call Status System.Drawing.GDIPlus:GdiplusStartup (UInt64, GdiplusStartupInput, GdiplusStartupOutput)
Run Code Online (Sandbox Code Playgroud)

注意:在调试模式下暂停应用程序几次后,"Magically"在写入时开始工作.我承诺我没有更改任何代码.谁知道什么可以导致"System.Drawing.GDIPlus"挂起所以我知道如何避免它?是否有单声道的codex设置文件或可能有垃圾箱的东西?

c# macos mono bitmap

8
推荐指数
1
解决办法
2488
查看次数

.NET IL ByteCode优化器

我正在尝试用C#.NET和Mono编写优化代码,用于游戏.(是的,我有正当理由使用C#而不是C++).

我注意到C#似乎没有正确优化其运算符.运算符的运行速度是使用Vector4数学手动内联代码的两倍.以下是我在.NET 4.5中运行9999999次的一些简单基准测试:

// Test 1
for (uint i = 0; i != 9999999; ++i)// 230 MS
{
  vector += vector2;
  vector2 -= vector;
}

// Test 2
for (uint i = 0; i != 9999999; ++i)// 185 MS
{
  vector = vector.Add(ref vector2);
  vector2 = vector2.Sub(ref vector);
}

// Test 3
for (uint i = 0; i != 9999999; ++i)// 116 MS
{
  vector.X += vector2.X;
  vector.Y += vector2.Y;
  vector.Z += vector2.Z;
  vector.W += vector2.W;
  vector2.X -= vector1.X;
  vector2.Y …
Run Code Online (Sandbox Code Playgroud)

.net c# optimization il bytecode

7
推荐指数
1
解决办法
1247
查看次数

Android TV ADT-1 adb连接端口有变化吗?

嗨,截至昨天,我能够通过WiFi构建并推送apk文件到ADT-1 Android电视设备.然后设备有更新,现在我不再能够连接到设备.我认为允许连接的端口号adb已经改变了......但是到了什么?

是的我确保IP地址有效并使用端口号"4321".Ping设备有效.但它给我的错误:"无法连接到10.0.0.86:4321:4321"

我试图通过以太网和WiFi连接.两者都失败了

debugging android adb android-tv

7
推荐指数
1
解决办法
1291
查看次数

"C#基类虚函数" - "在Managed C++ ref class中重写"

我有一个.NET_4托管C++引用类,它来自用C#编写的.NET_4基类.

C#基类:

namespace Core
{
  public class ResourceManager
  {
    public class _Resource
    {
      public virtual void Delete() {}
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

托管C++类:

namespace Input.DI
{
  public ref class Mouse : ResourceManager::_Resource
  {
    public:
    virtual void Delete() {}
  };
}
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

'Input :: DI :: Mouse :: Delete':匹配base ref class方法'Core :: ResourceManager :: _ Resource :: Delete',但不标记为'new'或'override'; 假设'new'(和'virtual')

virtual从C#类重写函数的正确托管C++语法是什么?

c# c++ virtual overriding managed

6
推荐指数
1
解决办法
2734
查看次数

在RenderThread上调用SwapBuffers时,Windows上的OpenGL使用Tons of CPU

好的,所以我在Windows上遇到了一些OpenGL的线程问题.我正在使用C#.NET来封装GL.我在Windows7 x64上.

所以我尝试了两种不同的测试.在每个测试中,我渲染一个无纹理的四边形(又称两个三角形).从我能说的话来看,CPU命中似乎与SwapBuffers有关.

单线程测试(这很好)::

{
Draw stuff;
SwapBuffers;
Sleep(15);
}
Run Code Online (Sandbox Code Playgroud)

RenderingThread测试(这吃了我所有的CPU)::

{
Draw stuff;
SwapBuffers;
//glFinish(); //<< If used this seems to make the CPU usage normal
Sleep(15);
}
Run Code Online (Sandbox Code Playgroud)

我知道这个例子很简单,但真正的问题是为什么OpenGL会在一个不同的线程上调用SwapBuffers时吸取我所有的CPU,而不是Windows GUI线程运行的线程?为什么glFinish()似乎解决了这个问题?每个人都说不要使用glFinish,所以我不确定我做错了什么,或者OpenGL只是在Windows上糟透了......?

我在OSX上运行相同的测试,CPU似乎正常.我在Windows上使用D3D9和D3D10运行相同的测试,CPU似乎正常.我没有在Linux上进行测试,因为我的L-box已关闭.

opengl cpu multithreading buffer swap

6
推荐指数
1
解决办法
2029
查看次数

.NET Core中的自定义“ CoreLib”?

试图在.NET Core项目中获取自定义CoreLib以便在VS 2017中加载。这在.NET Framework中非常容易,因为您需要的只是“ NoStdLib ”,但使用.NET Core似乎需要更多的部件。我不断收到:“项目文件不完整。预期的导入丢失了。”

<?xml version="1.0" encoding="utf-8"?>
<!--<Project Sdk="Microsoft.NET.Sdk">-->
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <PropertyGroup>
        <ProjectGuid>{3DA06C3A-2E7B-4CB7-80ED-9B12916013F9}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>

    <!--<TargetFramework>netcoreapp2.2</TargetFramework>-->
        <GenerateTargetFrameworkAttribute>false</GenerateTargetFrameworkAttribute>
        <AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences>
        <ExcludeMscorlibFacade>true</ExcludeMscorlibFacade>
        <NoStdLib>true</NoStdLib>
        <NoCompilerStandardLib>true</NoCompilerStandardLib>

        <LangVersion>latest</LangVersion>
        <RootNamespace>System</RootNamespace>
  </PropertyGroup>

    <PropertyGroup>
    <AssemblyName>System.Private.CoreLib</AssemblyName>
    <AssemblyVersion>4.0.0.0</AssemblyVersion>
    <MajorVersion>4</MajorVersion>
    <MinorVersion>6</MinorVersion>
    <ExcludeAssemblyInfoPartialFile>true</ExcludeAssemblyInfoPartialFile>
  </PropertyGroup>

</Project>
Run Code Online (Sandbox Code Playgroud)

正在关闭System.Private.CoreLib.csproj在做什么,并且不确定缺少的部分是什么?删除“ Sdk =“ Microsoft.NET.Sdk” “会导致部分问题,因为我认为自定义corelib无法使用

我基于的基础是:https : //github.com/dotnet/coreclr/blob/master/src/System.Private.CoreLib/System.Private.CoreLib.csproj

有谁知道csproj的设置是什么使它起作用?我似乎找不到任何好的信息。

.net c# csproj .net-core

6
推荐指数
1
解决办法
198
查看次数

“ SELECT * FROM ...” VS“ SELECT ID FROM ...”性能

作为一个不熟悉SQL的人,因为我使用的不是很多,所以我敢肯定对这个问题有答案,但是我不知道要寻找什么才能找到它,所以我深表歉意。

问题:如果我在数据库中有一堆具有很多列的行,但只需要取回更快的ID或它们的速度相同?

SELECT * FROM...
Run Code Online (Sandbox Code Playgroud)

SELECT ID FROM...
Run Code Online (Sandbox Code Playgroud)

.net sql database sql-server asp.net

5
推荐指数
1
解决办法
885
查看次数

C++多个接口只有不同的返回类型?

做一个以人类可读的方式将.NET IL翻译成C++的实验.

这是问题所在: C#允许您使用相同的方法名称来解析多个接口,这些接口的返回类型不同.C++似乎不支持这个,但是使用vTable解决两个接口是不可能的(或者我错了?).

我找到了一种使用模板在C++中复制C#方法的方法,但我想知道是否有一种方法不需要模板来解决同样的问题?模板很冗长,如果可能的话,我不希望它们用于每种接口类型.

这是C++版本.

template<typename T>
class IMyInterface
{
    public: short (T::*Foo_IMyInterface)() = 0;
};

template<typename T>
class IMyInterface2
{
    public: int (T::*Foo_IMyInterface2)() = 0;
};

class MyClass : public IMyInterface<MyClass>, public IMyInterface2<MyClass>
{
    public: MyClass()
    {
        Foo_IMyInterface = &MyClass::Foo;
        Foo_IMyInterface2 = &MyClass::IMyInterface2_Foo;
    }

    public: virtual short Foo()
    {
        return 1;
    }

    private: int IMyInterface2_Foo()
    {
        return 1;
    }
};

class MyClass2 : public MyClass
{
    public: virtual short Foo() override
    {
        return 2;
    }
}; …
Run Code Online (Sandbox Code Playgroud)

c# c++ templates overloading interface

5
推荐指数
2
解决办法
272
查看次数

WPF ContextMenu使用(Shift-Right-Click)

我对WPF中的"ContextMenu"有疑问.有没有办法只在执行"Shift-Right-Click"时弹出上下文菜单?我一直在寻找这个地方.在进行"右键单击"时,ContextMenu似乎只能弹出.

有人有主意吗 ??

wpf contextmenu right-click shift

4
推荐指数
1
解决办法
1211
查看次数