C语言如何在一个工程里建立多个文件?

C语言如何在一个工程里建立多个文件?,第1张

1、打开uVisionkeil4软件,新建好一个工程。

2、点击右键软件窗口左侧的”源组1“,再点击红色小框框里面的字”添加文件到组"源组1"。

3、选择已经创建好的C程序”点击添加“即可在一个工程中添加C程序文件。

4、点击添加后可以看见在”源组1“里面已经添加了一个”u4vision软件如何在一个工程中添加一个C程序.C“。添加成功。

5、双击”源组1“。

6、d出添加C程序界面后,由于已经添加了一样名字的C程序文件,软件会提示重复添加,点击确定即可。如果要再添加C程序文件,另选一个不同名字的C程序文件即可。

实现的方法和详细的 *** 作步骤如下:

1、第一步,打开“zdvc  ++ 6.0”编译器,然后选择“新建”选项,见下图,转到下面的步骤。

2、第二步,完成上述步骤后,选择文件,然后选择c

 / c ++头文件,在右侧**的文件名中输入要使用的头文件的名称,输入名称后单击确认,见下图,转到下面的步骤。

3、第三步,完成上述步骤后,在新创建的头文件中输入头文件代码,然后在输入代码后单击左上角的“保存”按钮,见下图,转到下面的步骤。

4、第四步,完成上述步骤后,找到刚创建的头文件,将其复制或移动到vc

 ++ 6.0的安装目录下的VC98 \ Include目录,见下图,转到下面的步骤。

5、第五步,完成上述步骤后,再次打开vc

 ++以创建一个新的C语言文件,如图所示,选择文件,选择C / C ++源文件,输入文件名**.C(记住带文件扩展名name.c),然后确认,见下图,转到下面的步骤。

6、第六步,完成上述步骤后,在新创建的c文件中输入代码,并声明在预处理命令中编写的头文件的名称,以调用头文件的函数库,见下图。这样,就解决了这个问题了。

使用C#生成dll文件并调用

一、创建dll文件:

例如生成一个md5编码判断状态的文件,即,输入一个字符串(string A)和一个32位md5编码(string B),判断此字符串A对应的32位md5编码是否与B相等,如果相等返回true,否则返回false。

打开VS 2005,“文件”--》“新建”--“项目”,选择“Windows 控件库”,命名后点击“确定”,在“UserControl1.cs”中输入以下代码:

using System

using System.Collections.Generic

using System.ComponentModel

using System.Drawing

using System.Data

using System.Windows.Forms

using System.Text

using System.Security.Cryptography

namespace md5

{

public partial class Program : UserControl

{

#region MD5 32位加密:GetMd5Str32

/// <summary>

/// 32位MD5加密

/// </summary>

/// <param name="strSource">待加密字串</param>

/// <returns>加密后的字串</returns>

public static string GetMd5Str32(string strSource)

{

byte[] bytes = Encoding.ASCII.GetBytes(strSource)

byte[] hashValue = ((System.Security.Cryptography.HashAlgorithm)System.Security.Cryptography.CryptoConfig.CreateFromName("MD5")).ComputeHash(bytes)

StringBuilder sb = new StringBuilder()

for (int i = 0i <16i++)

{

sb.Append(hashValue[i].ToString("x2"))

}

return sb.ToString().ToUpper()

}

#endregion

#region 核对md5编码是否一致:CheckMd5String()

/// <summary>

/// 核对md5编码是否一致

/// </summary>

/// <param name="ConvertString"></param>

/// <returns>如果一致返回true,否则返回false</returns>

///

public static bool CheckMd5String(string str1, string str2)

{

string md5String = str1//需要验证的字符串

string md5DbString = str2//需要核对的32位md5编码

int result = string.Compare(md5.Program.GetMd5Str32(str1), md5DbString, true)

if (result == 0)

{

return true

}

else

{

return false

}

}

#endregion

}

}

修改“UserControl1.Designer.cs”中的命名空间为“md5”,方法为“Program”,即可生成dll文件。

在...\bin\Debug文件假下,可以找到相应的dll文件。

二、部署dll流程:

首先把dll文件放到应用程序...\bin\Debug\下;

然后在解决方案中添加引用:右键鼠标-->添加引用-->浏览-->选择dll放置路径后点击“确定”。

注意:要在应用文件头处使用using md5;命令。

测试应用程序代码,如下:Form1.cs

using System

using System.Collections.Generic

using System.ComponentModel

using System.Data

using System.Drawing

using System.Text

using System.Windows.Forms

using md5

namespace WindowsApplication1

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent()

}

private void button1_Click(object sender, EventArgs e)

{

string str1 = textBox1.Text.ToString()

string md5String = textBox2.Text.ToString()

textBox3.Text = md5.Program.GetMd5Str32(str1)

textBox4.Text = md5.Program.CheckMd5String(str1, md5String).ToString()

}

private void button2_Click(object sender, EventArgs e)

{

this.Close()

}

}

}

三、注意点:

1、在C#应用程序开发过程中,加载dll文件时,报错“未能加载文件或程序集“md5, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。系统找不到指定的文件。”,请指点一下是什么原因?

解决:这是因为加载dll的路径问题,正确加载方式为:在“解决方案”的“引用”文件上右击鼠标,选择“添加引用”---》在“浏览”选项卡中添加引用(注意:自己定义的dll文件不能在“.NET”选项卡中添加。)

------------------------------------------------------------------------------------------------------------------

c#生成DLL文件,内部函数的问题

用C#编写一组处理XML文档的代码,由于要求生成DLL文件,并由外部的其他工具访问动态库中的文件,

但是用Dependency Walker检测我生成的这个DLL文件没有显示任何的函数,以前没做过这方面的东西,求教了

代码如下:

using System

using System.IO

using System.Xml

public class Sample

{

public static void Main()

{

DeleteArg()

}

static void DeleteArg()

{

XmlDocument doc = new XmlDocument()

doc.Load(@"c:\\data1.xml")

XmlNode root = doc.DocumentElement

XmlNode Node1

XmlNodeList nodeList = doc.SelectSingleNode("/Entity/Columns").ChildNodes

foreach (XmlNode xn in nodeList)

{

XmlElement xe = (XmlElement)xn

if (xe.GetAttribute("Name") == "SysModuleID")

{

xe.RemoveAll()

//xe.RemoveAttribute("Name")//删除Name属性

}

}

doc.Save("c:\\data1.xml")//保存这个文档到文件中

}

}

以上代码实现删除XML文件中某一节点的功能,如何在生成DLL后能够使用检测工具检测出DeleteArg函数,

使用Dependency Walker没检测出该函数是不是以为着这个动态库文件不能被调用.

----

因为.net的程序不是这样把函数放在导出表的, 我记得.net做的dll只导出了一个_CorDllMain的方法,

所以用Dependency Walker是看不出来的. 如果你想看.net做的dll导出了什么内容,可以用反射查看元数据

----

生成这个DLL库文件,是想要别的工具运行这个动态库文件,实现DELETEARG()这个函数的功能

----

可以的

----

你上面的代码不是生成DLL的,而是一个控制台应用程序.

要想创建动态库(DLL),在新建项目窗口中选择"类库", 默认的代码是这样的:

using System

using System.Collections.Generic

using System.Text

namespace ClassLibrary2

{

public class Class1

{

}

}

// 然后添加你的代码.最后代码如下:

using System

using System.Collections.Generic

using System.Text

using System.Xml

namespace ClassLibrary2

{

public class Class1

{

public void DeleteArg()

{

XmlDocument doc = new XmlDocument()

doc.Load(@"c:\\data1.xml")

XmlNode root = doc.DocumentElement

XmlNode Node1

XmlNodeList nodeList = doc.SelectSingleNode("/Entity/Columns").ChildNodes

foreach (XmlNode xn in nodeList)

{

XmlElement xe = (XmlElement)xn

if (xe.GetAttribute("Name") == "SysModuleID")

{

xe.RemoveAll()

//xe.RemoveAttribute("Name")//删除Name属性

}

}

doc.Save("c:\\data1.xml")//保存这个文档到文件中

}

}

}

最后编译一下就可以,

在Debug文件夹下回产生一个dll文件,最后在需要的工程里,将这个dll文件引进进去就可以用


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11924684.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存