小编Jon*_*ump的帖子

.NET中的热图样式渐变

我正在尝试使用与此类似的渐变创建热图: 在此输入图像描述

此图像显示三个点,渐变很好地融合在一起.

这是我目前在绘图功能中所做的事情:

public void DrawGradient(int x, int y, Graphics g) {
    using (var ellipsePath = new GraphicsPath()) {

    var bounds = new Rectangle(x, y, 100, 100);
    ellipsePath.AddEllipse(bounds);
    var brush = new PathGradientBrush(ellipsePath);
    Color[] colors = { 
           Color.FromArgb(64, 0, 0, 255), 
           Color.FromArgb(140, 0, 255, 0), 
           Color.FromArgb(216, 255, 255, 0), 
           Color.FromArgb(255, 255, 0, 0) 
       };
    float[] relativePositions = {0f,0.25f,0.5f, 1.0f};
    ColorBlend colorBlend = new ColorBlend();
    colorBlend.Colors = colors;
    colorBlend.Positions = relativePositions;
    brush.InterpolationColors = colorBlend;

    g.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceOver;
    g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
    g.SmoothingMode …
Run Code Online (Sandbox Code Playgroud)

.net c# system.drawing gradient alphablending

15
推荐指数
1
解决办法
3269
查看次数

fopen是否创建了文件描述符?

查看手册页fopen我无法得到这个问题的明确答案.

FILE *fopen(const char *path, const char *mode);
Run Code Online (Sandbox Code Playgroud)

我理解fopen返回一个指向流的文件指针,但是作为副产品创建的文件描述符?我试图确保FD_CLOEXEC在每个创建文件描述符的实例上包含该标志.如果文件描述符实际上是在没有"fd"用作输入的情况下从fopen最佳使用方式创建的fnctl().

谢谢.

c unix fopen file-descriptor

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

pthread_cond_timedwait()EINVAL的根本原因

我在非常罕见的情况下看到pthread_cond_timedwait()返回EINVAL并导致系统崩溃.我知道这意味着传入的参数之一必须是无效的,但互斥锁或cond变量如何变为无效?

有没有办法在调用pthread_cond_timedwait()之前检查这些参数以防止崩溃?

pthreads

4
推荐指数
2
解决办法
5007
查看次数

防止Ada DLL中的错位名称

在创建Ada DLL时,是否有一种简单的方法可以防止Ada名称被破坏?

这是我的.adb代码

with Ada.Text_IO;
package body testDLL is
   procedure Print_Call is
   begin
      Ada.Text_IO.Put_Line("Hello World");
   end Print_Call;

   function Add_Nums(A,B : in Integer) return Integer is
   begin
      return A + B;
   end Add_Nums;

end testDLL;
Run Code Online (Sandbox Code Playgroud)

我的.ads

package testDLL is
   procedure Print_Call;
   pragma export (dll, Print_Call, "Print_Call");

   function Add_Nums(A,B : in Integer) return Integer;
   pragma export (dll, Add_Nums, "Add_Nums");
end testDLL;
Run Code Online (Sandbox Code Playgroud)

我的python

import ctypes

TestDLL = ctypes.WinDLL ("libTestDLL.dll")
Print_Call = getattr(TestDLL, "Print_Call@0")
Print_Call()
Run Code Online (Sandbox Code Playgroud)

你可以看到我必须在函数名的末尾添加'@ 0',但是当我将相同的代码移动到不同的编译器时,这似乎会改变.这给我带来了一些问题.我需要一个标准的修改格式或一种方法来删除整个修改.

python dll ada name-mangling

3
推荐指数
1
解决办法
320
查看次数