在c ++中运行时创建dll

时间:2017-02-07 07:24:03

标签: c++ dll

我正在使用codeblocks和c ++。

我在大型项目上工作时遇到的问题是很多代码都是创建界面的。这需要花费大量时间和大量修复错误。

我想创建一个程序,让我可以编辑未来项目中的c ++代码。让我们称之为A. A将能够通过修改c ++代码为我的项目创建一个接口。现在,在A创建新项目的运行时,它会创建其cpp文件及其dll文件。当A添加一个例子按钮时,它会改变它的c ++并将结果保存在dll上。然后当我决定我的项目完成时,我想将该DLL转换为exe。我尽力用几句话来解释事情。希望你明白这个想法

我知道您可以通过单击新项目手动创建一个DLL,然后选择Dynamic Link Libraby,但是可以在运行时创建一个dll吗?基本上是这样的:

for (i = 0; i < strlen(argv[0]); i++)
....

        for (n = 0; n < strlen(argv[1]); n++)
        {
            printstringasbinary(argv[1][n]);
        }

str是一个数组,其中我存储了一些正确的c ++代码 f函数是我需要的答案。

我是这个主题的新手(dll文件,所以如果我问了一些愚蠢而明显的我道歉)

4 个答案:

答案 0 :(得分:3)

C ++程序无法在运行时编译代码。您可以做的最好的事情是要求程序调用编译器,然后编译器将创建您的dll。

答案 1 :(得分:3)

您可以将str的内容写入临时文件,并让程序使用此文件作为输入执行编译器。

答案 2 :(得分:2)

将源代码生成到文件中,然后将编译器作为外部进程调用以编译cpp文件。

inp.onchange = function(){
  source.src = URL.createObjectURL(inp.files[0]);
  vid.load();
  // even if it's just a pointer to the real file here
  vid.onended = function(){
      URL.revokeObjectURL(vid.currentSrc);
    };
  }

答案 3 :(得分:0)

结帐LoadLibraryFreeLibraryGetProcAddress。我假设你想要的是在运行时动态加载/卸载dll。