小编B_o*_*old的帖子

将FreeType编译为DLL(与静态库相对)

我想在ac#项目中使用FreeType.我发现了这个绑定,但我仍然需要一个freetype.dll.我通常在我的c ++项目中使用静态库,所以我从来没有编译过.打开freetype-solution(VS2010)我注意到动态库没有配置 - 只是静态库.我尝试自己配置并生成一个freetype.dll.如果我将它与c#-binding一起使用,我得到一个异常,那就是找不到FT_Init_FreeType入口点.知道如何调整freetype-project以便导出这些函数吗?

dll compilation freetype visual-studio-2010

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

C#,从二进制文件中读取结构

我想从二进制文件中读取结构.在C++中,我会这样做:

stream.read((char*)&someStruct, sizeof(someStruct));
Run Code Online (Sandbox Code Playgroud)

在C#中是否有类似的方式?BinaryReader仅适用于内置类型.在.NET 4中有一个MemoryMappedViewAccessor.它提供了Read<T>似乎是我想要的方法,除了我手动必须跟踪我想要读取的文件中的位置.有没有更好的办法?

c# binary structure file

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

去atomic.AddFloat32()

我需要一个函数来在Go中原子地添加float32值.这是基于我发现的一些C代码提出的:

package atomic

import (
    "sync/atomic"
    "unsafe"
    "math"
)

func AddFloat32(addr *float32, delta float32) (new float32) {
    unsafeAddr := (*uint32)(unsafe.Pointer(addr))

    for {
        oldValue := math.Float32bits(*addr)
        new       = *addr + delta
        newValue := math.Float32bits(new)

        if atomic.CompareAndSwapUint32(unsafeAddr, oldValue, newValue) {
            return
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

它应该工作(即真的是原子的)?在Go中有更好/更快的方法吗?

floating-point atomic add go

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

显式大小的可用内存

我在寻找malloc/ free主流操作系统般的API,允许我既分配和重新分配过程中指定一个明确的大小。我希望从中获得的收益是,当程序中已分配大小时,运行时可以在记账上花费更少的内存。

在例如Windows上,我只找到了free()_aligned_free()_freea(),它们都没有第二个参数作为大小。

c c++ memory-management

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

锯齿形打印浮点精度

在 zig 中,可以使用“{d}”以十进制表示法打印浮点值。这将自动以全精度打印该值。有没有办法指定位数?要么针对每个值,要么作为某种全局设置?

zig

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

C++ 0x中的最终虚函数

读到你可以在C++ 0x中拥有最终的虚函数我有点困惑.首先省略两个修饰符有什么区别?

virtual final c++11

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

WPF RichTextBox滚动到TextPointer

WPF RichtTextBox有一个滚动方法:

RichTextBox.ScrollToVerticalOffset(double)
Run Code Online (Sandbox Code Playgroud)

我想以这样的方式滚动,一个cerctain范围或至少它的开始进入视野.如何以有意义的方式将TextPointer转换为double?

c# wpf scroll richtextbox

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

C++ 联合的性能影响

Agner Fog 的“Optimizing software in C++”中指出: union会强制将变量存储在内存中,即使变量本来可以存储在寄存器中,这可能会对性能产生影响。(例如第148页)

我经常看到这样的代码:

struct Vector {
    union {
        struct {
            float x, y, z, w;
        };
        float v[4];
    }
};
Run Code Online (Sandbox Code Playgroud)

这可能非常方便,但现在我想知道是否可能会造成潜在的性能影响。我编写了一个小型基准测试,比较带有和不带有联合的 Vector 实现,并且在某些情况下,没有联合的 Vector 显然表现更好,尽管我不知道我的基准有多值得信赖。(我比较了三种实现:union; x, y, z, w; v[4]。例如,v[4] 在按值传递时似乎更慢,尽管结构体都具有相同的大小。)

我现在的问题是,人们在编写实际生产代码时是否会考虑这一点?您是否知道专门因为这个原因而对工会做出不利于工会的案例?

c++ cpu-registers unions

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

Visual Studio 2017:_mm_load_ps经常编译为movups

我正在查看为我的代码生成的程序集(使用Visual Studio 2017),并注意到_mm_load_ps经常(总是?)编译为movups.

我正在使用_mm_load_ps的数据定义如下:

struct alignas(16) Vector {
    float v[4];
}

// often embedded in other structs like this
struct AABB {
    Vector min;
    Vector max;
    bool intersection(/* parameters */) const;
}
Run Code Online (Sandbox Code Playgroud)

现在当我使用这个结构时,会发生以下情况:

// this code
__mm128 bb_min = _mm_load_ps(min.v);

// generates this
movups  xmm4, XMMWORD PTR [r8]
Run Code Online (Sandbox Code Playgroud)

我期待movaps因为alignas(16).在这种情况下,我还需要其他东西来说服编译器使用movaps吗?

编辑:我的问题与这个问题不同,因为我没有遇到任何崩溃.结构是专门对齐的,我也使用对齐分配.相反,我很好奇为什么编译器将_mm_load_ps(对齐内存的固有内容)切换到movups.如果我知道struct是在一个对齐的地址分配的,我通过这个*调用它,那么使用movaps是安全的,对吧?

c++ assembly sse intrinsics visual-studio-2017

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

Queryable.Intersect()与SQLite和Linq没有给出预期的结果

我想通过几个关键字搜索书籍数据库.我提供的关键字越多,搜索范围就越窄.这是我的代码:

var words = text.Split(' ');

IQueryable<Reference> query = null;

foreach (string word in words)
{
    var result = from r in _dbConnection.GetTable<Reference>()
                 where r.Title.Contains(word)
                 || r.ReferenceAuthor.Any(a => a.Person.LastName.Contains(word) || a.Person.FirstName.Contains(word))
                 || r.ReferenceCategory.Any(c => c.Category.Name.Contains(word))
                 || r.ReferenceKeyword.Any(k => k.Keyword.Name.Contains(word))
                 orderby r.Title
                 select r;

    query = query == null ? result : query.Intersect(result);
}

query.OrderBy(r => r.Title);
Run Code Online (Sandbox Code Playgroud)

问题是,搜索实际上并没有越多,我提供的关键字越多.结果甚至取决于我提供关键字的顺序.此外,如果涉及多个关键字,则最后一次OrderBy()调用无法可靠地工作.我的想法有缺陷,还是我实施它的方式?

c# linq sqlite intersect

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

WPF DataGrid文本包装在标题和其他地方

我想在WPF DataGrid列标题和行的内容中启用文本换行.寻找解决方案,我经常偶然发现这样的事情.问题是,它不适合我.

首先,我对这一行有疑问:

xmlns:primitives="clr-namespace:Microsoft.Windows.Controls.Primitives;assembly=WPFToolkit"
Run Code Online (Sandbox Code Playgroud)

我收到有关未找到程序集的错误.其余XAML代码存在更多问题.

<Style TargetType="{x:Type primitives:DataGridColumnHeader}">
<Setter Property="ContentTemplate">
    <Setter.Value>
        <DataTemplate>
            <TextBlock TextWrapping="Wrap" Text="{Binding}"></TextBlock>
        </DataTemplate>
    </Setter.Value>
</Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)

我将它放在DataGrid标记内,否则将无法编译.我也省略了"primitives"-namespace,因为我实际上没有包含它(见上文).现在它编译.但是,应用程序在窗口的构造函数中抛出一些异常.知道我怎么能让这个东西真正起作用吗?

c# wpf datagrid word-wrap

2
推荐指数
1
解决办法
1万
查看次数

整数和浮点类型的 zig maxValue

zig 曾经使用@maxValue来查询整数类型的最大值,但我认为它在几个版本前已被删除。有替代品吗?我找不到它。

\n

zig

2
推荐指数
1
解决办法
2494
查看次数