小编Nar*_*use的帖子

编译时动态链接库不生成.lib文件(Visual Studio C++ Express)

作为学习C++的一部分,我编写了一个引用它的简单类库+应用程序.所有内容都构建,除了类库不生成.lib文件,这导致应用程序抛出"LINK:致命错误LNK1104:无法打开文件".这似乎很合理; 很明显,如果没有必要的文件,则会出现错误,这是致命的.(旁注:我还没有书)

所以,我去寻找可能无法生成.lib文件的原因.顺便说一句,我的搜索功能相当薄弱.我所做的就是,如果库没有任何__declspec(dllexport)标签,它就不会导出.lib.

我现在将发布类库的头文件和.cpp内容(一个简单的"Console"类,带有一个"Write(std :: string)"方法).

标题:

// Extensions.h

#pragma once

#include "stdafx.h"

namespace Extensions {

    __declspec(dllexport) class Console
    {
    public:
        __declspec(dllexport) static void Write(std::string text);
    };
}
Run Code Online (Sandbox Code Playgroud)

我不确定在标记类时是否需要标记函数,但是我可以在它工作时检查它.

和.cpp文件:

// This is the main DLL file.

#include "stdafx.h"

// #include "Console.h"

namespace Extensions {

    void Console::Write(std::string text)
    {
        std::cout << text.c_str();
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经检查过,它被设置为生成一个动态链接库.

谢谢.

c++ visual-studio-2010 .lib

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

TortoiseSVN - 忽略文件和文件夹

刚开始测试TortoiseSVN.

所采取的行动:

  • 创建文件夹[项目名称]回购.
  • 在Repo-Browser中打开[项目名称] Repo.
  • 去了Windows中的项目文件夹.
  • 右键单击要忽略的文件.
    • 从菜单中选择TortoiseSVN.
    • 不存在忽略选项.
  • 尝试过其他文件/文件夹.相同.

救命?谢谢.

编辑:

菜单中的选项,打开Repo-Browser并单击[project] .csproj:

  • 回购的browers
  • 设置
  • 关于

svn tortoisesvn

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

Git的替代品?

是否有任何具有Git功能的版本控制软件,但它不是病毒许可证? - 根据我的定义,"病毒许可证"是指要求衍生软件属于相同或同等限制许可的软件许可.

我对GPL的争论或讨论不感兴趣; 它超出了本问题和网站的范围.

谢谢.

version-control version-control-migration

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

使用Build Action:Content访问文件

我以前访问内容文件的方法是将它们设置为"始终复制/如果更新",然后直接加载文件.

但是,在浏览网页时,似乎还有另一种加载方式 - 它会自动包含在.exe/.dll中.但是,我一直无法找出方法是什么,以访问所包含的内容.

c# visual-studio-express

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

导弹太空物理学,宇宙飞船 - 学习微积分版

假设我们有导弹A,具有位置矢量和速度幅度(忽略加速度,就像许多游戏一样)和太空飞船B,具有位置和速度矢量.现在,这种导弹是一个讨厌的寻找导弹,将试图寻找太空船B的最佳拦截.

导弹A有两个优点:它知道微积分,它可以计算多项式的根.然而,导弹,或抽象的,程序员,仍在学习微积分,并想知道他是否有正确的方程式.(多项式根将由一个名为Jenkins-Traub Code的Netclib实现的好人解决)

以机智:

  • mp =导弹位置

  • mv =导弹速度

  • sp =宇宙飞船的位置

  • sv =宇宙飞船速度

  • t =时间

根据程序员的最佳猜测,拦截方程为:t sp sv + t sp mv - t mp sv - t mp mv

除了我很确定我完全走错了轨道,因为在这个混乱中应该有一些指数; 这是一个尝试解决:(sp-mp)(sv-mv)(t)

我的另一个选择是区分(sp-mp)(sv-mv)^ 2,但我想首先得到反馈,部分是因为,除非我弄错了,'(sp-mp)'解析为'1'.这似乎......奇怪.OTOH,这个功能正在改变的速度可能就是我正在寻找的.

那么 - 我有什么问题,在哪里以及为什么?

谢谢.

第一个线程的潜在有用链接.

编辑:

方程式求和:

(a + bx)+(c + ex)

(a + 1bx ^ 0)+(c + 1ex ^ 0)

(a + 1)+(c + 1)

非可行的.

方程的乘积:

(A + BX)(C + EX)

AC + AEX + CBX + BEX ^ 2

不是多项式(不能用Jenkins-Traub解决)并且看起来不太正确.

AC + 1aex ^ …

math physics calculus

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

这是一个正确的视角FOV矩阵吗?

我有一个透视FOV,但是在旋转时,它看起来并不正确 - 更远的物体比更近的物体移动更快,将它们传递到屏幕中间.

那么:这是对的吗?使用右手坐标,如果重要吗?

    public static Matrix4x4 PerspectiveFOV(float fov, float aspect, float near, float far)
    {
        float yScale = 1.0F / (float)Math.Tan(fov / 2);
        float xScale = yScale / aspect;
        float farmnear = far - near;
        return new Matrix4x4(
            xScale, 0, 0, 0,
            0, yScale, 0, 0,
            0, 0, far / (farmnear), 1,
            0, 0, -near * (far / (farmnear)), 1
            );
    }
Run Code Online (Sandbox Code Playgroud)

谢谢.

matrix fieldofview perspective

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

哪个 C# 编译器版本可以使用 CSharpCodeProvider 类编译 C# 7.3?

我想使用 Microsoft.CSharp.CSharpCodeProvider 类来编译 C# 7.3 代码。编译器版本在创建新 CSharpCodeProvider 时作为输入的 IDictionary 中指定;例如,{“CompilerVersion”、“v4.0”}。“v4.0”是不够的,因为它不能将 v7.3 识别为编译器选项。

c# csharpcodeprovider

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

计算平方根和功率的快速方法?

C#的Math类只有double和powers.如果我将基于浮点的平方根和幂函数添加到我的Math2类(今天是放松日,我发现优化放松),各种事情可能会更快一些.

所以 - 快速的平方根和电源功能,我不必担心许可,plskthx.或者是一个让我在那里的链接.

c# math exponent

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

嵌入.dlls-C#中的程序集解析

我有一个.dll试图作为资源嵌入可执行文件中。以下两个问题会有所帮助,但不是完整的帮助:

将装配体嵌入另一个装配体中

这似乎不符合书面要求。args.Name不能照原样使用,但即使已修复,程序仍会抱怨缺少.dll,表明程序集未正确加载。

将DLL嵌入已编译的可执行文件中

以及以下答案之一的链接:

http://codeblog.larsholm.net/2011/06/embed-dlls-easily-in-a-net-assembly/

但是,我的项目中没有任何形式的“ App.xaml *”文件-我没有使用WPF;我正在为自己的可执行文件使用WinForms(由于可执行文件的性质,更改并不是真正的选择)。

因此,我正在寻找一套完整的说明,以将类库作为资源嵌入可执行文件中,并从资源中加载.dll,而无需在嵌入式资源外部添加.dll文件。

例如,将一个“ App.xaml”文件简单地添加到WinForms项目中是否可行,或者是否存在我不知道的负面交互作用?

谢谢。

编辑:这是我目前正在使用的:

/// <summary>
/// Stores the very few things that need to be global.
/// </summary>
static class AssemblyResolver
{
    /// <summary>
    /// Call in the static constructor of the startup class.
    /// </summary>
    public static void Initialize( )
    {
        AppDomain.CurrentDomain.AssemblyResolve +=
            new ResolveEventHandler( Resolver ) ;
    }


    /// <summary>
    /// Use this to resolve assemblies.
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="args"></param>
    /// <returns></returns>
    public …
Run Code Online (Sandbox Code Playgroud)

c# dll embedded-resource

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

这个逻辑/代码链是否存在明显问题?

我正在阅读的其中一本书是"莫里斯·赫利希和尼尔·沙维特的多处理器编程艺术".在其中,有一个"无等待"队列(在一些语言自适应之后)在线程环境中完美地运行测试和逻辑 - 至少,即使在分布在5个线程上的10,000,000个项目上也没有冲突逻辑检查出来.

(如果无法获取项目,我编辑队列返回false,而不是抛出异常.代码如下所示).

但是,它有一个警告; 队列无法增长.粗略的逻辑检查指出它不能在不锁定队列的情况下增长 - 这在某种程度上否定了拥有无锁队列的重要性.

因此,目的是创建一个可以增长的无锁(或至少无饥饿锁定)队列.

所以:如果我们基本上给每个线程提供他们自己的共享队列,那么这种方式不是矛盾的(并且接受这个已被解决的高概率并且更好地用于边做边学):

        WaitFreeQueue<Queue<int>> queues = new WaitFreeQueue<Queue<int>>(threadCount);

        // Dequeue a queue, enqueue an item, enqueue the queue.

        // Dequeue a queue, dequeue an item, enqueue the queue.
Run Code Online (Sandbox Code Playgroud)

和无等待队列(如果我做出任何重大更改,先前的代码包含在注释中):

/// <summary>
/// A wait-free queue for use in threaded environments.
/// Significantly adapted from "The Art of Multiprocessor Programming by Maurice Herlihy and Nir Shavit".
/// </summary>
/// <typeparam name="T">The type of item in the queue.</typeparam>
public class WaitFreeQueue<T>
{
    /// <summary>
    /// …
Run Code Online (Sandbox Code Playgroud)

c# queue multithreading

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

为什么下面的程序会挂起?

现在我已经有了SmartPointers,我决定尝试使用DumbPointers,它在析构函数中调用"delete"非常困难.决定继续使用DumbPointer在SmartPointer中存储数组的测试,我回忆起之前的错误,并尝试了这个:

DumbPointer<char> dumbPointer = "Hello World\0";  
Run Code Online (Sandbox Code Playgroud)

由于"也许这不是一个指针或正确的指针?"的未定义原因,它会导致程序挂起.当然,我想知道为什么,着眼于解决这个问题.我现在将在下面提供非常复杂的DumbPointer代码(也许我应该去睡觉):(让我再次向你保证:析构函数被调用)

#pragma once

#include "stdafx.h"

template <typename T> class DumbPointer
{
private:
T* myPtr;

public:
T* Value() { return myPtr; }

DumbPointer(const DumbPointer<T>& a)
 { throw new "No assignments between DumbPointer."; }
DumbPointer(T* ptr) { myPtr = ptr; }
DumbPointer(T value) { myPtr = &value; }
~DumbPointer() { delete myPtr; }


operator T*() { return myPtr; }
T* operator ->() { return myPtr; }
};
Run Code Online (Sandbox Code Playgroud)

c++

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

相对于内存堆,C++链表(std :: list)是否使用new?

使用Visual Studio for c ++; std :: list使用new来分配节点吗?我问,因为我将内存堆编码为一个挑战,如果它使用new,则会降低内存堆的有效性.

内存堆按照这个问题,第一个答案:如何实现内存堆

如果它确实使用new,我将如何修复它(关于使用上述问题的答案中概述的内存堆的链表)?

谢谢.

c++ heap-memory

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

Lua有什么.Net包装器?(不是民意调查)

Lua有什么.Net包装器?谷歌并没有太大的帮助,尽管这可能只是我缺乏搜索条件的人才.

我正在寻找:.Net中的Lua和LuaBind,与C#一起使用.直接转换是最好的; (a)包装物是可以接受的.

谢谢.

.net c# lua

0
推荐指数
1
解决办法
281
查看次数