我试图制作绝对最简单的最小例子,说明如何在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.这似乎是处理最琐碎的事情,但我完全坚持下去.当我尝试使用"添加"功能进行类似的实验,这个功能需要两个双打并且返回一个双重而没有问题.
我试图做一个最小的例子来读取一个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*而不是文件的提升?
谢谢
我有一些js/html/css,在某些情况下,在加载图像时会遇到无害的403错误.
有没有办法捕获这些错误并防止它们将错误记录到控制台?
谢谢!
我正在尝试使用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
任何人都可以提供一些关于我可能出错的地方的见解,我对图书馆来说是全新的.
我在内存中有一个数据uri,我希望用户下载.
这个小提琴适用于chrome而不是FF:http://jsfiddle.net/6W2TY/
单击运行时,它将以chrome格式下载微小图像,并在FF中不执行任何操作.任何人都可以帮助我理解为什么它在FF中不起作用以及我需要做些什么才能使它工作?
谢谢!
我有一个 Web 应用程序,其中有多个 iframe,它们都需要导入相同的 javascript 库(例如 jquery)。
有没有办法只加载一次并以某种方式在所有 iframe 之间共享该数据?我不想让我的页面加载缓慢,因为它为每个 iframe 加载一次相同的 JS 文件。
谢谢!
编辑:人们说你不能共享 iframe 中的数据,但是如果 js 导入都在命名空间(例如 NAMESPACE)中,然后 iframe 会执行类似 NAMESPACE =parent.NAMESPACE 的操作,该怎么办?
我正在尝试编写一个可以执行以下操作的库.
当库包含在头部时,它会改变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处理它们?
谢谢!
使用以下代码:
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不应该做任何事情,除了得到替换...
我有一个页面,其中包含带有外部内容的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) 我正在使用Google的计算引擎开发一个应用,并且想使用可抢占式实例。
我需要我的代码来响应谷歌在他们打算夺走您的VM时通过ACPI G2软关闭信号发出的30年代警告,如下所述:https : //cloud.google.com/compute/docs/instances / preemptible。
如何在机器上运行的python代码中检测到此事件并做出相应的反应(在我的情况下,我需要将VM正在处理的作业放回到打开的作业队列中,以便其他机器可以使用它)。