Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 向客户发布部分源代码_Delphi_Pascal - Fatal编程技术网

Delphi 向客户发布部分源代码

Delphi 向客户发布部分源代码,delphi,pascal,Delphi,Pascal,我为一家公司写了一个程序。他们想要源代码 该程序使用我为许多客户的几个项目编写的代码 我只想发布这个程序使用的代码。因此,如果一个名为Utils.pas的共享文件包含十个函数,而这个程序只使用其中的两个,那么我想发布一个名为Utils.pas的文件,其中只包含这两个函数 代码是使用Delphi编写的Borland Pascal 有人知道我怎么做吗 澄清:我不是在问许可证问题。我希望客户只拥有其程序使用的源代码,而没有其他内容。将他们的代码从utils.pas中分离出来,放入client_xxxx

我为一家公司写了一个程序。他们想要源代码

该程序使用我为许多客户的几个项目编写的代码

我只想发布这个程序使用的代码。因此,如果一个名为Utils.pas的共享文件包含十个函数,而这个程序只使用其中的两个,那么我想发布一个名为Utils.pas的文件,其中只包含这两个函数

代码是使用Delphi编写的Borland Pascal

有人知道我怎么做吗


澄清:我不是在问许可证问题。我希望客户只拥有其程序使用的源代码,而没有其他内容。

将他们的代码从utils.pas中分离出来,放入client_xxxx_utils.pas。向他们收取您通常的费用,用于完成此项工作、重建、烟雾测试等。。问题解决了

好吧,万一弄清楚要修剪什么是件烦人的事。。。 编译程序,并查看utils.pas单元。通常情况下,边距中会有蓝点,表示可以设置断点。“死代码”将不会在空白处有蓝点,因为链接器已经消除了该代码。任何没有蓝点的东西都是他们不需要的

对于更自动化的方法,也许Peganza Pascal Analyzer可以在它的许多报告中识别死代码

这里有一些相关的问题,有着相似的答案(有些是我提出的!)


如果无法使用现有的文件结构,则说明您没有将其分解为足够多的部分。这是捕获所有源文件的一种危险。如果您为他们生成的代码使用了您生成的“公共库”,为什么不简单地为他们的项目提供.pas文件,并为您的“公共库”提供编译的DCU文件?任何特定于所有客户的内容,请将其放入您自己的组件包中,并且只向他们提供无来源的BPL。然后,剩余的来源将是特定于客户的。但是,如果您有特定于一个客户的代码,而您不希望特定的其他客户看到这些代码,那么您还必须为每个客户的代码生成BPL。这仍然是一项艰巨的任务,祝你好运。或者你也可以使用DLL做类似的解决方案。请记住,无论是哪种类型,您都希望为每个库指定一个唯一的名称,这是特定于每个客户的,但不会泄露客户的名称。像客户ID一样使用作为标识符,只有您知道谁的ID。