小编Mor*_*sen的帖子

何时使用动态库和静态库

在C++中创建类库时,可以在动态(.dll,.so)和静态(.lib,.a)库之间进行选择.它们之间有什么区别,何时适合使用哪种?

c++ dll shared-libraries dynamic-linking static-linking

426
推荐指数
11
解决办法
23万
查看次数

使用jQuery检索包含换行符的JSON格式的文本时出现问题

检索JSON格式的文本时,我遇到了一个奇怪的问题.我使用jQuery post将一些数据(也是JSON格式)发送到服务器(运行PHP),这很好.然后,当我使用jQuery从服务器请求相同的数据时get,回调方法永远不会执行.仅当数据采用JSON格式且数据包含换行符时才会发生这种情况.当我不使用JSON格式时,它工作正常.令我感到困惑的是,上传数据没有问题.

上传代码:(有效)

$.post("ajax/contents_ajax.php", {
    'title': caption,
    'text': frameText().getContent(),
    'image_id': img
},
//Callback
Run Code Online (Sandbox Code Playgroud)

下载代码:(不适用于换行符)

$.get("ajax/contents_ajax.php", { 'get_item': id },
function (data){
    //Never gets executed if data contains line breaks
}
,'json');
Run Code Online (Sandbox Code Playgroud)

整个问题源于这样一个事实,即TinyMCE富文本编辑器似乎坚持在各处插入换行符,即使我启用了该选项

remove_linebreaks : true
Run Code Online (Sandbox Code Playgroud)

我更喜欢换行,但如果它们破坏我的代码则不行.任何人都可以告诉我这里的问题是什么,也许我怎么能用PHP编码服务器上的换行符?


更新

虽然更换建议,'\n'''没有工作,它是接近正确的解决方案.此代码删除了有问题的字符:

function parse($text){
    $parsedText = str_replace(chr(10), "", $text);
    return str_replace(chr(13), "", $parsedText);

}
Run Code Online (Sandbox Code Playgroud)

jquery json tinymce line-breaks

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

CUDA驱动程序API与CUDA运行时

编写CUDA应用程序时,您可以在驱动程序级别或运行时级别工作,如此图像所示(库是CUFFT和CUBLAS用于高级数学运算):

CUDA层模型
(来源:tomshw.it)

我假设两者之间的权衡是低级API的性能提升,但代价​​是代码的复杂性增加.有什么具体的差异,是否有任何重要的事情,你不能用高级API?

我正在使用CUDA.net与C#进行互操作,它是作为驱动程序API的副本构建的.这鼓励在C#中编写许多相当复杂的代码,而使用运行时API的C++等效代码更简单.这样做有什么可以赢的吗?我能看到的一个好处是,将智能错误处理与其余的C#代码集成起来更容易.

c# c++ cuda gpgpu cuda.net

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

如何在C#中执行快速Web请求

我有一个基于HTTP的API,我可能需要多次调用.问题是我无法获得少于约20秒的请求,尽管通过浏览器发出的相同请求几乎是即时的.以下代码说明了到目前为止我是如何实现它的.

WebRequest r = HttpWebRequest.Create("https://example.com/http/command?param=blabla");
var response = r.GetResponse();
Run Code Online (Sandbox Code Playgroud)

一种解决方案是进行异步请求,但我想知道为什么需要这么长时间,如果我可以避免它.我也尝试过使用WebClient类,但我怀疑它在内部使用WebRequest.

更新:

在发布模式下运行以下代码大约需要40秒(使用秒表测量):

WebRequest g = HttpWebRequest.Create("http://www.google.com");
var response = g.GetResponse();
Run Code Online (Sandbox Code Playgroud)

我在一所大学工作,网络配置可能会有不同的因素影响性能,但直接使用浏览器表明它应该接近即时.

更新2:

我将代码上传到远程机器并且工作正常,因此结论必须是.NET代码与浏览器相比做了额外的事情,或者它在通过大学网络解决地址时遇到了问题(代理问题或其他什么?!).

c# httpwebrequest

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

如何从png图像中获取图标?

我正在创建一个WPF应用程序,所以我主要使用ImageSource类来处理图标.但是,系统托盘图标必须是类型System.Drawing.Icon.是否可以从png图像创建这样的对象?

我尝试过以下方法:

private static System.Drawing.Icon _pngIcon;
public static System.Drawing.Icon PngIcon
{
    get
    {
        if (_pngIcon == null)
        {  
            //16x16 png image (24 bit or 32bit color)
            System.Drawing.Bitmap icon = global::BookyPresentation.Properties.Resources.star16;
            MemoryStream iconStream = new MemoryStream();
            icon.Save(iconStream, System.Drawing.Imaging.ImageFormat.Png);
            iconStream.Seek(0, SeekOrigin.Begin);
            _pngIcon = new System.Drawing.Icon(iconStream); //Throws exception
        }
        return _pngIcon;
    }
}
Run Code Online (Sandbox Code Playgroud)

Icon构造函数抛出异常,并显示以下消息:"参数'图片'必须是可用作图标的图片."

我认为它可能是图像颜色的位深度,因为我之前遇到了一些问题,但32位和24位图像都不起作用.我可能想做什么?

wpf icons png

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

数据库视图会影响查询性能吗?

数据库视图只是简化数据访问的一种方法,还是在访问视图时提供了性能优势,而不是仅运行视图所基于的查询?我怀疑视图在功能上等同于将存储的视图查询添加到视图数据上的每个查询,这是正确的还是还有其他细节和/或优化发生?

database performance views

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

如何在执行文件io时正确处理异常

我常常发现自己以某种方式与文件进行交互,但在编写代码后,我总是不确定它实际上是多么糟糕.问题是我不完全确定文件相关操作如何失败,因此是处理预期的最佳方法.

简单的解决方案似乎只是捕获代码抛出的任何IOExceptions并为用户提供"无法访问的文件"错误消息,但是可以获得更细粒度的错误消息.有没有办法确定这些错误之间的差异,如文件被另一个程序锁定,以及由于硬件错误而无法读取的数据?

鉴于以下C#代码,您将如何处理用户友好(尽可能提供信息)方式的错误?

public class IO
{
   public List<string> ReadFile(string path)
   {
      FileInfo file = new FileInfo(path);

      if (!file.Exists)
      {
         throw new FileNotFoundException();
      }

      StreamReader reader = file.OpenText();
      List<string> text = new List<string>();

      while (!reader.EndOfStream)
      {
         text.Add(reader.ReadLine());
      }

      reader.Close();
      reader.Dispose();
      return text;
   }

   public void WriteFile(List<string> text, string path)
   {
      FileInfo file = new FileInfo(path);

      if (!file.Exists)
      {
         throw new FileNotFoundException();
      }

      StreamWriter writer = file.CreateText();

      foreach(string line in text)
      {
         writer.WriteLine(line);
      }

      writer.Flush();
      writer.Close();
      writer.Dispose();
   }
}
Run Code Online (Sandbox Code Playgroud)

.net c# file-io exception-handling

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

如何从c#获取网站标题

我正在重新审视我的旧代码,并且偶然发现了一种基于其网址获取网站标题的方法.这并不是你所谓的稳定方法,因为它经常无法产生结果,有时甚至会产生不正确的结果.此外,有时它无法显示标题中的某些字符,因为它们是替代编码.

有没有人对这个旧版本有改进建议?

public static string SuggestTitle(string url, int timeout)
{
    WebResponse response = null;
    string line = string.Empty;

    try
    {
        WebRequest request = WebRequest.Create(url);
        request.Timeout = timeout;

        response = request.GetResponse();
        Stream streamReceive = response.GetResponseStream();
        Encoding encoding = System.Text.Encoding.GetEncoding("utf-8");
        StreamReader streamRead = new System.IO.StreamReader(streamReceive, encoding);

        while(streamRead.EndOfStream != true)
        {
            line = streamRead.ReadLine();
            if (line.Contains("<title>"))
            {
                line = line.Split(new char[] { '<', '>' })[2];
                break;
            }
        }
    }
    catch (Exception) { }
    finally
    {
        if (response != null)
        {
            response.Close();
        }
    } …
Run Code Online (Sandbox Code Playgroud)

c# webrequest

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

用CUDA进行光线追踪

我目前正在实施光线跟踪器.由于光线追踪的计算量非常大,而且无论如何我都要研究CUDA编程,我想知道是否有人有任何将这两者结合起来的经验.我无法确定计算模型是否匹配,我想知道会发生什么.我得到的印象是它不是天堂般的匹配,但是一个体面的速度增加会比没有好.

cuda raytracing

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

在富文本框中显示行号c#

我有一个Multiline richtextbox控件,我想要集成添加行号的功能.我考虑过很多方法

  1. 添加标签并在行数更改时更新行号
  2. 添加一个图片框以在其上绘制字符串.
  3. 添加另一个文本框并在其上显示行号
  4. 添加列表框并在其中显示行号.

我有两个疑惑.

  1. 我正在使用的richtextbox是一个自定义控件和RichTextBox类的derieves.如何为其添加多个控件.
  2. 在c#中显示多行文本的行号的最佳方法是什么

c# textbox multiline line-numbers

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