我在D中创建了一个简单的加密程序,我有想法从中创建一个DLL并尝试将其导入到例如Python中.
我可以简单地调用我的main函数,因为它不需要任何参数.但是当我使用我的加密方法时,它使用动态长度ubyte[]数组,但据我所知,它们不存在于其他基于C/C++的语言中.
例如,我的一个函数的第一行:
ubyte[] encode(ubyte[] data, ubyte[] key){
但是我不能在没有固定长度的情况下使用其他语言的数组!如何导入该函数,例如,在Python中?
编辑:
我知道我可以创建一个包含指针和数组长度的包装器,但是不是更优雅的解决方案吗?
(我不需要使用D来使用用D编写的lib)
我需要使用struct模块在 Python 中打包数字。我想在打包时检查一个数字是否为float或double。我怎样才能做到这一点?是否有任何内置函数,或者我需要编写一个?或者我需要为简单的Floats编写一个类,而不是使用 python 的floats(实际上是Doubles)?
提前致谢!
我正在尝试在D中编写一个程序,该程序涉及一个在新客户端加入时Server创建新Client对象的类.我想在创建时将服务器对象传递给客户端,但是稍后当我尝试Server从客户端访问该对象时,我的程序将以错误代码-11停止.我用Google搜索但没有发现任何东西.
我已成功在以下代码段中重新创建此行为:
import std.stdio;
class Server
{
public:
int n;
Client foo() //Foo creates a new client and passes this to it
{return new Client(this);}
}
class Client
{
public:
this(Server sv) //Constructor takes Server object
{sv=sv;}
Server sv;
void bar() //Function bar tries to access the server's n
{writeln(sv.n);}
}
void main()
{
Server s = new Server; //Create a new server object
Client c = s.foo(); //Then ask …Run Code Online (Sandbox Code Playgroud)