您能否提供一个代码片段,展示如何在OCaml中使用Lua?
一个简单的例子可能是"Hello,World"变体.让OCaml提示用户输入名称.然后将该名称传递给Lua函数.让Lua打印问候语并返回名称的长度.然后让OCaml打印一条关于名称长度的消息.
例:
user @ desktop:〜$./ hello.opt
名称?用户
你好,用户.
你的名字长4个字母.
用户@桌面:〜$
[编辑]
作为一名非C程序员,我是否可以实现这一点而无需编写中间C程序来传递Lua和OCaml之间的数据?
以下是我想尝试的理论概念.不幸的是,ocaml_hello.ml的第3行需要知道如何调用lua_hello.lua中定义的函数以使代码有效.
lua_hello.lua 定义lua_hello,它打印一个参数并返回其长度.
1 function lua_hello (name)
2 print ("Hello, "..name..".")
3 return (string.len (name))
4 end
Run Code Online (Sandbox Code Playgroud)
ocaml_hello.ml OCaml提示输入名称,调用Lua函数,并打印返回值.
1 let () = print_string "Name? "; flush stdout in
2 let name = input_line stdin in
3 let len = Lua_hello.lua_hello name in
4 Printf.printf "Your name is %d letters long." len; flush stdout;;
Run Code Online (Sandbox Code Playgroud) 我想在网页中嵌入一个视频.
我不想使用闪存,因为它不适用于大量平台.
我不愿意使用HTML5因为它不太标准(它是标准的,但大多数人没有支持它的浏览器)
还有其他方法吗?或者我应该坚持HTML5和一个巨大的横幅告诉人们升级他们的浏览器?
可能重复:
有没有办法在Java中嵌入浏览器?
如何在基于Java的桌面应用程序中嵌入浏览器?我可以直接与嵌入式浏览器通信(而不是通过localhost)...例如加载html文本,捕获onclick事件,获取表单值?
谢谢
我知道可以将我的C代码编译成dll,然后使用P/Invoke来调用该代码.
我想知道是否有可能在我的代码中直接嵌入一大块C代码,也许只有一个类可用...
像这样(非工作)的例子:
public class MyClass {
extern "C" {
int do_something_in_c(int i) {
return i*2;
}
}
public int DoSomething(int value) {
return do_something_in_c(value);
}
}
Run Code Online (Sandbox Code Playgroud)
我一直在尝试使用Visual Studio 2008几个小时,但我没有到达任何地方,我怀疑它实际上是不可能的.任何人都可以确认或否认这个吗?
谢谢.
我使用FontSquirrel字体生成器尝试生成嵌入的字体文件,以便我可以使用css中的@ font-face嵌入网站.
但是,我拥有的字体文件(在Mac上)如下所示并且显示为灰色,并且无法选择它们在FontSquirrel或其他转换器上进行转换(即它们似乎不是我可以使用的原始文件类型嵌入):
我可以以某种方式将这些转换为.otf或.ttf,或者有人知道另一种嵌入方法.
谢谢!
我有一个表单,我正在使用Javascript来验证表单,因此如果您将字段留空,则会提示"请填写您的姓名".
如果我直接去链接,它可以很好地工作.但这有点像Widget,所以我使用iFrame将其嵌入其他网站.当我嵌入它时,单击"提交"并显示一个空字段,它说:http://www.example.com上的页面说:请填写您的姓名
有没有办法摆脱它?
我一直在尝试使用新的YouTube iframe API在我的phonegap Android应用中嵌入YouTube视频.
嵌入本身工作,YouTube窗口弹出预览图片和中心的播放按钮.
问题是,当我单击按钮开始流式传输视频时,嵌入不播放视频 - 只需加载预览图片并且什么都不做.
如果有帮助,使用的代码如下.
& lt;iframe title="YouTube video player"
class="YouTube-player" type="text/HTML" width="320" height="194"
src="http://www.youtube.com/embed/xxxxxxxx" frameborder="0"></iframe>Run Code Online (Sandbox Code Playgroud)MediaPlaybackRequiresUserAction: NO
AllowInlineMediaPlayback: YES
OpenAllWhitelistURLsInWebView: YES
ExternalHosts
*.youtube.com
*.ytimg.comRun Code Online (Sandbox Code Playgroud) 在android中怎么样?? 脚本/ AI/Dream.boo
import CultLib
import LonelyHero
class Dream(Enemy):
pass
Run Code Online (Sandbox Code Playgroud)
C#
var bc = new BooCompiler();
bc.Parameters.Input.Add(new FileInput("rsc/script/ai/" + "Dream" + ".boo"));
bc.Parameters.Pipeline = new CompileToMemory();
bc.Parameters.References.Add(Assembly.GetExecutingAssembly());
bc.Parameters.References.Add(Assembly.LoadFile(new DirectoryInfo("CultLib.dll").FullName));
bc.Parameters.References.Add(Assembly.LoadFile(new DirectoryInfo("sfmlnet-audio-2.dll").FullName));
bc.Parameters.References.Add(Assembly.LoadFile(new DirectoryInfo("sfmlnet-graphics-2.dll").FullName));
bc.Parameters.References.Add(Assembly.LoadFile(new DirectoryInfo("sfmlnet-window-2.dll").FullName));
var cc = bc.Run();
if(cc.GeneratedAssembly!=null)
{
cc.GeneratedAssembly.CreateInstance("Dream", true, BindingFlags.NonPublic, null,
new object[] {Parent, pos}, null, null);
}
else
{
foreach (var error in cc.Errors)
Console.WriteLine(error);
}
Run Code Online (Sandbox Code Playgroud)
在该行中,bc.Parameters.References.Add(Assembly.GetExecutingAssembly());我添加了执行程序集,其中包含名称空间"LonelyHero".但是,错误
rsc/script/ai/Dream.boo(2,8):BCE0021:未找到命名空间LonelyHero.也许你忘了添加装配参考?
出现.
LonelyHero应该存在,为什么会出现此错误,我该怎么做才能解决它?
注意:替换Assembly.GetExecutingAssmebly()为Assembly.GetAssembly(typeof(Enemy)),从而确保它在LonelyHero命名空间下添加了一个类,同样的错误发生.还有Assembly.LoadFile(new DirectoryInfo("LonelyHero.exe").FullName)
发生在Boo 0.9.4.9和booxw-1203中
我试图找到以编程方式获取Instagram视频的嵌入链接.不幸的是,Instagram的oEmbed端点似乎将视频视为照片,只返回关键帧图像,而不是提供嵌入链接.
有没有人知道如何检索Instagram视频的嵌入链接而无需手动访问该视频的页面?
我试图在使用Qt应用程序中嵌入emacs QX11EmbedContainer,并且有两个重要的例外.首先,这是代码:
#include <QX11EmbedWidget>
#include <QtGui>
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QX11EmbedContainer container;
container.show();
container.resize(500, 500);
QProcess* process = new QProcess(&container);
QString executable("emacsclient");
QStringList arguments;
arguments << "--parent-id" << QString::number(container.winId());
process->start(executable, arguments);
int status = app.exec();
process->close();
return status;
}
Run Code Online (Sandbox Code Playgroud)
以及编译和执行行(以及之前抛出的emacs服务器):
$ emacs -q --daemon &
// filtered output
$ g++ test.cpp -lQtGui -lQtCore -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4
$ ./a.out
Run Code Online (Sandbox Code Playgroud)
最后,结果是:

但是,当我尝试在迷你缓冲区中写入内容时,窗口小部件的大小会崩溃,焦点也会丢失:

如果我在(现在更短的)小部件中点击,我可以继续使用emacs而没有问题,但我应该调整窗口大小,以便emacs在原来的其他时间扩展.
问题出在哪儿?