小编asu*_*and的帖子

将字符串从C#传递到C++ DLL并返回 - 最小的例子

我试图制作绝对最简单的最小例子,说明如何在C#中向C++ DLL传递字符串.

我的C++看起来像这样:

using std::string;

extern "C" {
    string concat(string a, string b){
        return a + b;
    }
}
Run Code Online (Sandbox Code Playgroud)

像标题一样

using std::string;

extern "C" {
    // Returns a + b
    __declspec(dllexport) string concat(string a, string b);
}
Run Code Online (Sandbox Code Playgroud)

我的C#是

[DllImport("*****.dll", CallingConvention = CallingConvention.Cdecl)]
    static extern string concat(string a, string b);
}
Run Code Online (Sandbox Code Playgroud)

我用它来调用它:Console.WriteLine(concat("a","b"));

但是这会产生System.AccessViolationException.这似乎是处理最琐碎的事情,但我完全坚持下去.当我尝试使用"添加"功能进行类似的实验,这个功能需要两个双打并且返回一个双重而没有问题.

c# c++ pinvoke

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

C++ boost解析动态生成的json字符串(不是文件)

我试图做一个最小的例子来读取一个json字符串,该字符串作为带有boost的命令行arg传递.我对C++很陌生并且提升.

我的代码是:

int main (int argc, char ** argv)
{
  boost::property_tree::ptree pt;
  boost::property_tree::read_json(argv[1], pt);
  cout << pt.get<std::string>("foo");
}
Run Code Online (Sandbox Code Playgroud)

我称之为

./myprog "{ \"foo\" : \"bar\" }"
Run Code Online (Sandbox Code Playgroud)

但我收到'无法打开文件错误'.如何获得读取std :: string或char*而不是文件的提升?

谢谢

c++ json boost

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

可以防止403错误登录到Web控制台吗?

我有一些js/html/css,在某些情况下,在加载图像时会遇到无害的403错误.

有没有办法捕获这些错误并防止它们将错误记录到控制台?

谢谢!

javascript ajax

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

Charts.js将画布宽度/高度设置为0并且不显示任何内容

我正在尝试使用Charts.js来动态显示它们在示例中显示的默认线图,并将其放在我在用户单击时弹出的div中.我的代码是这样的:

this.chartCanvas = document.createElement('canvas');
this.div.appendChild(this.chartCanvas);
this.chartCanvas.style.height = '480px';
this.chartCanvas.style.width = '900px';
this.chartCanvas.width = 900;
this.chartCanvas.height = 480;
this.ctx = this.chartCanvas.getContext('2d');

this.chart = new Chart(this.ctx).Line(data);
Run Code Online (Sandbox Code Playgroud)

当我调用"新图表"时,我的画布高度和宽度设置为0,正如我在检查器中看到的那样.当我注释掉这个调用时,我的画布具有适当的宽度/高度并显示为人们所期望的.如果我在检查器中手动更改画布高度/宽度,我的图表仍然不会显示.

我的"数据"对象就是我直接从他们的折线图中剪切和粘贴的对象:http://www.chartjs.org/docs/#line-chart-example-usage

任何人都可以提供一些关于我可能出错的地方的见解,我对图书馆来说是全新的.

javascript charts

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

Javascript,以编程方式触发firefox中的文件下载

我在内存中有一个数据uri,我希望用户下载.

这个小提琴适用于chrome而不是FF:http://jsfiddle.net/6W2TY/

单击运行时,它将以chrome格式下载微小图像,并在FF中不执行任何操作.任何人都可以帮助我理解为什么它在FF中不起作用以及我需要做些什么才能使它工作?

谢谢!

javascript firefox dom google-chrome

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

可以跨 iframe 共享 javascript 导入吗?

我有一个 Web 应用程序,其中有多个 iframe,它们都需要导入相同的 javascript 库(例如 jquery)。

有没有办法只加载一次并以某种方式在所有 iframe 之间共享该数据?我不想让我的页面加载缓慢,因为它为每个 iframe 加载一次相同的 JS 文件。

谢谢!

编辑:人们说你不能共享 iframe 中的数据,但是如果 js 导入都在命名空间(例如 NAMESPACE)中,然后 iframe 会执行类似 NAMESPACE =parent.NAMESPACE 的操作,该怎么办?

javascript iframe

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

改变图像标签的原型?

我正在尝试编写一个可以执行以下操作的库.

当库包含在头部时,它会改变HTMLImageElement原型,以便用户碰巧在HTML中使用的任何图像标记或者他们在javascript中动态创建的图像标记将具有由我的库定义的默认的onerror函数.

这样做的结果是,如果任何用户图像无法加载,因为他们指向一个坏URL,我的库将以优雅的方式处理它.

我正在尝试以下作为实验,

var img = document.createElement('img');
  img.__proto__.onerror = function() {
    alert('hi');
  };
  document.body.innerHTML = '<img id="foo" src="bar.png"/>'
Run Code Online (Sandbox Code Playgroud)

文件bar.png不存在但不起作用.

但是,如果我只是做类似的事情

  document.body.innerHTML = '<img id="foo" src="bar.png" ' +
    'onerror="this.src = MODIT.getImage(\'blackTile\').src;"/>';
Run Code Online (Sandbox Code Playgroud)

工作正常.这里MODIT.getImage()是一个返回图像元素的函数.你可以在这里玩这个代码:https://mod.it/ciR_BxqJ/

我正在尝试做什么?或者有没有办法全局捕获所有403 GET错误并以某种方式使用javascript处理它们?

谢谢!

javascript dom

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

使用$&奇数JavasScript字符串替换行为

使用以下代码:

var x = 'foo';
console.log(x.replace(x, "\\$&"));?
Run Code Online (Sandbox Code Playgroud)

输出为'\ foo',如下所示:http://jsfiddle.net/mPKEx/

为什么不呢

'\\$&"?
Run Code Online (Sandbox Code Playgroud)

我用"\ $&"替换所有的x,这只是一个计划旧的字符串,所以为什么string.replace做了一些疯狂的替换,当函数的第二个arg不应该做任何事情,除了得到替换...

javascript regex string replace

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

Javascript:父级可以杀死子iframe,如果它被卡在无限循环中?

我有一个页面,其中包含带有外部内容的iframe.我不希望外部内容中的无限循环崩溃我的整个页面.有没有办法解决这个问题.

我试图在父级postMessages子iframe的情况下设置一些内容,如果子iframe没有响应太长时间,则父级更改iframes src,但这似乎不起作用.一旦iframe开始循环,父级的setTimeout函数就不再执行了.在这里查看我的代码(请注意,如果执行它会使选项卡崩溃,在执行之前打开控制台以查看日志记录):

<html>
<head>
</head>
<body>
<script type="text/javascript">
var scr = 'script';
var html = '<html><head><script>\n' +
'  window.addEventListener("message", answer, false);' +
'  function answer() { console.log("answered"); parent.postMessage(\'hi\', \'*\');}' +
'  setTimeout("while(1){console.log(\'in loop\')};", 3000)' +
"</" + scr + "></head><body>IFRAME</body</html>";

var lastAnswer = (new Date()).getTime();
var iframe = document.createElement('iframe');
queryChild();

window.addEventListener("message", receive, false);
function receive() {
  lastAnswer = (new Date()).getTime();
  console.log('got answer');
}

function queryChild() {
  console.log('querying');
  if((new Date()).getTime() - lastAnswer > 5000) {
    console.log('killing');
    iframe.src = '';
  } …
Run Code Online (Sandbox Code Playgroud)

javascript iframe infinite-loop

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

如何在Linux上使用python检测系统ACPI G2 / S5软关闭事件

我正在使用Google的计算引擎开发一个应用,并且想使用可抢占式实例。

我需要我的代码来响应谷歌在他们打算夺走您的VM时通过ACPI G2软关闭信号发出的30年代警告,如下所述:https : //cloud.google.com/compute/docs/instances / preemptible

如何在机器上运行的python代码中检测到此事件并做出相应的反应(在我的情况下,我需要将VM正在处理的作业放回到打开的作业队列中,以便其他机器可以使用它)。

python linux google-compute-engine

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