1. 关于asp.net中的CS文件怎么生成DLL文件
例如有index.aspx和index.aspx.cs两个文件,现在要把index.aspx.cs编译成DLL文件,可以这样写:csc/out:yourdir\index.dll/t:library/r:bin/myConnBase.dllindex.aspx.csTop生成的index.dll需放在你的虚拟目录根下的bin下即可。或你的网站根下的bin文件夹中
2. 如何net中的dll文件
使用csc命令将.cs文件编译成.dll的过程很多时候,我们需要将.cs文件单独编译成.dll文件, 操作如下:打开命令窗口->输入cmd到控制台->cd C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322转到vs.net安装的该目录下->执行csc命令csc /target:library File.cs->在该目录下产生一个对应名字的.dll文件(前提:把.cs文件放到C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322目录下)csc命令的方式很多,请参考以下译File.cs 以产生 File.execsc File.cs 编译 File.cs 以产生 File.dllcsc /target:library File.cs 编译 File.cs 并创建 My.execsc /out:My.exe File.cs 通过使用优化和定义 DEBUG 符号,编译当前目录中所有的 C# 文件。输出为 File2.execsc /define:DEBUG /optimize /out:File2.exe *.cs 编译当前目录中所有的 C# 文件,以产生 File2.dll 的调试版本。不显示任何徽标和警告csc /target:library /out:File2.dll /warn:0 /nologo /debug *.cs 将当前目录中所有的 C# 文件编译为Something.xyz(一个 DLL)csc /target:library /out:Something.xyz *.cs 编译 File.cs 以产生 File.dllcsc /target:library File.cs这个就是我们使用最多的一个命令,其实可以简单的写成csc /t:library File.cs,另外的一个写法是 csc /out:mycodebehind.dll /t:library mycodebehind.cs,这个可以自己指定输出的文件名。csc /out:mycodebehind.dll /t:library mycodebehind.cs mycodebehind2.cs,这个的作用是把两个cs文件装到一个.dll文件里举例(摘于网络)一、 动态链接库 什么是动态链接库?DLL三个字母对于你来说一定很熟悉吧,它是Dynamic Link Library 的缩写形式,动态链接库(DLL) 是作为共享函数库的可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还有助于共享数据和资源。多个应用程序可同时访问内存中单个 DLL 副本的内容。 和大多数程序员一样,你一定很使用过DLL吧。也曾感受到它的带给你程序设计和编码上的好错吧今天我想和大家探讨一个主题:如何在C#创建和调用DLL(动态链接库), 其实在很大意义上而讲,DLL让我更灵活的组织编写我们的应用程序,作为软件设计者,可一个根据它来达到很高的代码重用效果。下面我来介绍一下在C#中如何创建和调用DLL。二、准备工作 我们需要对我们接下来要做的事情做个简单的介绍,在本文我们将利用C#语言创建一个名为 MyDLL.DLL的动态链接库,在这个动态链接库文件中我们将提供两个功能一个是对两个参数交换他们的值,另一个功能是求两个参数的最大公约数。然后创建一个应用程序使用这个DLL。运行并输出结果。三、创建DLL让我们创建以下三个C#代码文件:1、 MySwap.csview plain to clipboardprint?//该语句不要加入到程序中using System; namespace MyMethods { public class SwapClass { public static bool Swap(ref long i,ref long j) { i = i+j; j = i-j; i = i-j; return true; } } }2、MyMaxCD.csview plain to clipboardprint?//该语句不要加入到程序中using System; namespace MyMethods { public class MaxCDClass { public static long MaxCD(long i, long j) { long a,b,temp; if(i>j) { a = i; b = j; } else { b = i; a = j; } temp = a % b; while(temp!=0) { a = b; b = temp; temp = a % b; } return b; } } } 需要注意的是:我们在制作这两个文件的时候可以用Visual Studio.NET或者其他的文本编辑器,就算是记事本也可以。这两个文件虽然不在同一个文件里面,但是他们是属于同一个namespace(名称空间)这对以后我们使用这两个方法提供了方便。当然他们也可以属于不同的名称空间,这是完全可以的,但只是在我们应用他们的时候就需要引用两个不同的名称空间,所以作者建议还是写在一个名称空间下面比较好。 接下来的任务是把这两个cs文件变成我们需要的DLL文件。方法是这样的:在安装了Microsoft.NET Framework的操作系统上,我们可以在Windows所在目录下找到Microsoft.NET目录。在这个目录下面提供了C#的编译器,CSC.EXE运行:csc /target:library /out:MyDLL.DLL MySwap.cs MyMaxCD.cs,完成后可在本目录下面找到我们刚才生成的MyDLL.DLL文件/target:library 编译器选项通知编译器输出 DLL 文件而不是 EXE 文件。后跟文件名的 /out 编译器选项用于指定 DLL 文件名。如果/out后面不跟文件名编译器使用第一个文件 (MySwap.cs) 作为 DLL 文件名。生成的文件为MySwap.DLL文件。 OK!我们创建动态链接库文件的任务完成了,现在是我们享受劳动成果的时候了,下面我将介绍如何使用我们所创建的动态链接库文件。 四、使用DLL 我们简单写一个小程序来测试一下我们刚才写的两个方法是否正确,好吧,跟我来:MyClient.csview plain to clipboardprint?//该语句不要加入到程序中using System; using MyMethods; //这里我们引用刚才定义的名称空间,如果刚才的两个文件我们写在两个不同的名称空间 class MyClient { public static void Main(string[] args) { if (args.Length != 2) { Console.WriteLine("Usage: MyClient <num1> <num2>"); return; } long num1 = long.Parse(args[0]); long num2 = long.Parse(args[1]); SwapClass.Swap(ref num1,ref num2); // 请注意,文件开头的 using 指令使您得以在编译时使用未限定的类名来引用 DLL 方法 Console.WriteLine("The result of swap is num1 = {0} and num2 ={1}",num1, num2); long maxcd = MaxCDClass.MaxCD(num1,num2); Console.WriteLine("The MaxCD of {0} and {1} is {2}",num1, num2, maxcd); } }若要生成可执行文件 MyClient.exe,请使用以下命令行:csc /out:MyClient.exe /reference:MyLibrary.DLL MyClient.cs/out 编译器选项通知编译器输出 EXE 文件并且指定输出文件名 (MyClient.exe)。/reference 编译器选项指定该程序所引用的 DLL 文件。五、执行若要运行程序,请输入 EXE 文件的名称,文件名的后面跟两个数字,例如:MyClient 123 456六、输出The result of swap is num1 = 456 and num2 = 123The MaxCD of 456 and 123 is 3七、小结动态链接具有下列优点: 1、节省内存和减少交换操作。很多进程可以同时使用一个 DLL,在内存中共享该 DLL 的一个副本。相反,对于每个用静态链接库生成的应用程序,Windows 必须在内存中加载库代码的一个副本。 2、节省磁盘空间。许多应用程序可在磁盘上共享 DLL 的一个副本。相反,每个用静态链接库生成的应用程序均具有作为单独的副本链接到其可执行图像中的库代码。 3、升级到 DLL 更为容易。DLL 中的函数更改时,只要函数的参数和返回值没有更改,就不需重新编译或重新链接使用它们的应用程序。相反,静态链接的对象代码要求在函数更改时重新链接应用程序。 4、提供售后支持。例如,可修改显示器驱动程序 DLL 以支持当初交付应用程序时不可用的显示器。 5、支持多语言程序。只要程序遵循函数的调用约定,用不同编程语言编写的程序就可以调用相同的 DLL 函数。程序与 DLL 函数在下列方面必须是兼容的:函数期望其参数被推送到堆栈上的顺序,是函数还是应用程序负责清理堆栈,以及寄存器中是否传递了任何参数。 6、提供了扩展 MFC 库类的机制。可以从现有 MFC 类派生类,并将它们放到 MFC 扩展 DLL 中供 MFC 应用程序使用。 7、使国际版本的创建轻松完成。通过将资源放到 DLL 中,创建应用程序的国际版本变得容易得多。可将用于应用程序的每个语言版本的字符串放到单独的 DLL 资源文件中,并使不同的语言版本加载合适的资源。 使用DLL 的一个潜在缺点是应用程序不是独立的;它取决于是否存在单独的 DLL 模块
3. C++自定义函数原型申明的疑问
在vc中,定义了一个模板函数:template<class _Ty> inline void swap(_Ty& _X, _Ty& _Y){ _Ty _Tmp = _X; _X = _Y, _Y = _Tmp; }该函数在..\VC98\Include\XUTILITY.h中定义。该头文件在#include "stdafx.h" 中被自动包含了。所以实际上编译链接的是这个函数,而不是自己写的swap了。把橘神swap改名为myswap,就清楚了。而且进行原型声明后,反而是连接简键自己编写的函数拦伍巧了。可以试试看。
4. 如何设置/修改centos上的swap交换分区
根据Redhat公司的建议,linux系统swap分区最适合的大小是物理内存的1-2倍.不过Linux上有些软件对swap分区得需求较大,例如要顺利执行Oracle数据库软件,swap分区至少需要400MB或者物理内存2倍以上的空间.当然我们在安装Linux的时候,就能直接讲swap分区设置到足够的大小,但如果已经安装好Linux了,之后又想再安装类似Oracle的软件,却发现swap分区空间不够,该如何处理?针对此种情况,有两种解决方法:一是创建新的swap分区;另一则是创建swap文件.(这里暂时对创建swap文件做说明)创建swap文件如果你的硬盘空间已经全部分配给其他分区,也没有多余的预算新添购硬盘,我们可以利用swap文件的方式增加虚拟的swap空间,不过执行性能会较实际的swap分区差.产生swap文件要创建swap文件,执行dd命令,新增一个256MB的swap文件:# dd if=/dev/zero of=/tmp/myswap bs=32k count=8192(bs=32k指定每个扇区占用32kb,读入了8192 0个区段,输出了8192 0个区段)注意:bs参数的目的在于指定每樱中次读取及输入多少个bytes;由于磁盘存取的最小单位为扇区,因此设置bs也等于设置每个扇区的大小;而count的目的则在指定可以使用多少个扇区.因此,可以使用的硬盘空间就等于bs*count.以上范例为例,可以使用的硬盘空间等于32*8192=262144(KB),亦等于256MB.执行上述命令后,会在/tmp目录中创建一个256MB的myswap文件格式华及启动swap文件接下来执行mkswap命令,将myswap文件格式化成s文件系统,系统才能使用,切换到咐颂吵/tmp目录,并执行以下命令:# mkswap myswap (#将文件格式化为swap文件格式)setting up swapspace version 1 , size = 262144 KB# swapon /tmp/myswap (#启动swap分区)要停止使用新创建的swap文件,只要执行 swapoff /tmp/myswap命令即可.开机时自动启动新添加的swap分区如果每次开机后都要执行swapon命令启动swap分区或者文件,这太麻烦了.这时可以利用文字编辑器在/etc/fstab文件加一衡侍行,好让开机时自动启动swap分区及文件:/dec/hdb5 swap swap defaults 0 0 (开机时启动此swap分区)/tmp/myswap swap swap defaults 0 0 (开机时启动此swap文件)
5. 如何设置/修改centos上的swap交换分区
根据Redhat公司的建议,Linux系统swap分区最适合的大小是物理内存的1-2倍.不过Linux上有些软件对swap分区得需求较大,例如要顺利执行Oracle数据库软件,swap分区至少需要400MB或者物理内存2倍以上的空间.当然我们在安装Linux的时候,就能直接讲swap分区设置到足够的大小,但如果已经安装好Linux了,之后又想再安装类似Oracle的软件,却则羡发现swap分区空间不够,该如何处理?(bs=32k指定每个扇区占用32kb,读孙敏拍入了8192 0个区段,输出了8192 0个区段) 注意:bs参数的目的在于指定每次读取及拿散输入多少个bytes;由于磁盘存取的最小单位为扇区,因此设置bs也等于设置每个扇区的大小;而count的目的则在指定可以使用多少个扇区.因此,可以使用的硬盘空间就等于bs*count.以上范例为例,可以使用的硬盘空间等于32*8192=262144(KB),亦等于256MB. 执行上述命令后,会在/tmp目录中创建一个256MB的myswap文件 格式华及启动swap文件
6. 如何设置/修改centos上的swap交换分区 .
小swap分区的方法:1、先“df -h”和“fdisk – l”命令查看一下当前分区情况/dev/mapper/vg_"hostname"-lv_swap就是swap分区,为2G。swap分区亦可用free命令查看到。2、用swapoff命令关闭交换分区:# swapoff /dev/mapper/vg_"hostname"-lv_swap然后用free命令检查下swap是否变为0了。3、用lvrece命令把swap分区减小1500M:# lvrece -L -1500M /dev/mapper/vg_"hostname"-lv_swap输入y,确定,看到提示swap减小至516M。4、重新把/dev/mapper/vg_"hostname"-lv_swap设置为swap分区:# mkswap /dev/mapper/vg_"hostname"-lv_swap5、swapon开启swap分区:# swapon /dev/mapper/vg_"hostname"-lv_swap然后用free命令检查下swap是否变为516M了。
7. c语言中的几道难题
/*给定程序的功能是找出所有100以内(含 100)满足I,I+4,I+10都是素数的整数I(I+10 也在100以孙饥内)的个数cnt以雹码及这些I之和sum。*/#include<stdio.h>main(){ int i,j,cnt=0; long sum=0; for(i=1;i<=90;i++) { for(j=2;j<i;j++) { if(i%j==0) break; if((i+4)%j==0) break; if((i+10)%j==0) break; } if(j>=i) { cnt++; sum+=i; } } printf("满足条件的数有%d个,它们的和为%ld",cnt,sum); }/*给定程序MODI1.C中函数fun的功能是:将a 所指字符串中字符的倒序,和b所 指字符串中的倒序,按排列的顺序交叉合并 到c所指数组中,过长的剩余字符接在 c所指数组的尾部。 例如,当a所指字符串中 的内容为"abcdefg", b所指字符串 中的内容为"1234"时,则c所指数组中的内容 应该为"g4f3e2d1cba";而当a所指字 符串中的内容为"1234",b所指字符串中的内 容为"abcdefg"时,则肆返则c所指数组中的 内容应该为"4g3f2e1dcba"。 请改正函数fun中的错误,使它能得出正 确的结果。 注意:不要改动main函数,不得增行或删 行,也不得更改程序的结构! *//*#include <stdio.h> #include <string.h> #include <conio.h> void myswap(char *s) { char *sp,*st,ch; sp=s; st=s+strlen(s)-1; while(sp<=st) { ch=*sp; *sp=*st; *st=ch; sp++; st–; } } void fun(char *a,char *b,char *c) { char s1[100],s2[100],*sa,*sb; /************FOUND************/ strcpy(s1,a); strcpy(s2,b); /************FOUND************/ /*myswap(s1);myswap(s2); sa=s1; sb=s2 ; while(*sa||*sb) { if(*sa) { *c=*sa; c++; sa++; } if(*sb) { *c=*sb; c++; sb–; } } *c=0; } main() { char s1[100],s2[100],t[200]; printf("\nEnter s1 string:"); scanf("%s",s1); printf("\nEnter s2 string:"); scanf("%s",s2); fun(s1,s2,t); printf("\nThe result is:%s\n",t); } */
8. dev c++如何编译多个源文件
//file1: a.cpp#include<iostream>template<typename a>void myswap(a & x,a & y){a t;t=x; x=y; y=t;} /咐顷燃/乎嫌file2: main.cpp#include <iostream>using namespace std;int main(){int a,b;cin>>衡虚a,b;myswap(a,b);cout<<a<<" "<<b;system("PAUSE");return 0;}
9. LINUX操作系统如何调整SWAP大小
很多新用户在使用LINUX 操作系统 的时候都不会调整SWAP大小.我就针对这个问题给大家推荐一个解决 方法 .
LINUX操作系统如何调整SWAP大小
使用free命令带上m参数,查看swap文件大小,官方建议在RAM是2到4.5G时,swap是RAM的2倍;如果RAM大于等于4G则swap等于RAM即可
也可用cat 查看etc目录下的swaps文件,如下图
创建一个swap文件
########
dd if=/dev/zero of=/tmp/swap bs=1MB count=1024
########
以下仅供参考:不用看
Creating a swap file
First of, make sure the file system the disk you wish to swap on is properly mounted. For the purposes of this tutorial we will assume the disk is mounted as /mnt and we want to use the file /mnt/myswap.swp for swapping.
使用下面的命令创建一个1G的swap文件
Use the following command to create a 1024MB file that we will use for swapping
########
dd if=/dev/zero of=/mnt/myswap.swp bs=1024MB count=1
########
制作一个swap文件,如果觉得繁琐,可以将mkswap文件挂载到tmp目录下,例如:
########
mkswap /tmp/swap
########
以下仅供参考:不用看
Preparing the swap file
Before we enable the swap file we must first set it up. The following command accomplishes just that:
########
mkswap /mnt/myswap.swp
########
使用swapon 启动/tmp/swap
########
swapon /tmp/swap
########
使用一个swap分区,如果已经有一个swap分区,该步骤可以省略
以下仅供参考:不用看
Using a swap partition
Setting up a swap partition is a bit more difficult, as the partition must be first created then formatted using the linux-swap file system. Once that is done, assuming the swap partition is at/dev/scsi/host0/bus0/target0/lun0/part5 (common for v24 USB drives with mutiple partitions), the only command that needs be issued is:
再次使用free查看增加后的swap大小
如果只想增加swap大小,请忽略以下的操作(重要!!)
如果不使用刚才增加的1G的swap文件,使用下面的swapoff命令,可以关闭,这样swap文件就缩小了1G
使用swapoff关闭swap文件
########
swapoff /tmp/swap
########