扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
string url = "" + "senderLoginName=" + "zy" + "token=" + "997a7cdc-2399-47e8-991e-96c859cccc7f";
创新互联建站专注于企业成都全网营销推广、网站重做改版、平房网站定制设计、自适应品牌网站建设、成都h5网站建设、成都做商城网站、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为平房等各大城市提供网站开发制作服务。
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
req.CachePolicy = new RequestCachePolicy(RequestCacheLevel.NoCacheNoStore);
req.Method = "POST";
byte[] fileData = null;
using (FileStream fs = new FileStream("c:\\LDAP集成设计文档.doc", FileMode.Open))
{
fileData = new byte[fs.Length];
fs.Read(fileData, 0, (int)fs.Length);
}
string BOUNDARY = "---------------------------7d4a6d158c9";
string fileName = "LDAP集成设计文档.doc";
StringBuilder sb = new StringBuilder();
sb.Append("--");
sb.Append(BOUNDARY);
sb.Append("\r\n");
sb.Append("Content-Disposition: form-data;\r\n name=\"1\"; filename=\"" + fileName + "\"\r\n");
sb.Append("Content-Type: application/msword\r\n\r\n");
req.Headers.Add("Content-Type", "multipart/form-data;boundary=" + BOUNDARY);
Listbyte sendData = new Listbyte();
sendData.AddRange(Encoding.UTF8.GetBytes(sb.ToString()));
sendData.AddRange(fileData);
sendData.AddRange(Encoding.UTF8.GetBytes("\r\n--" + BOUNDARY + "--\r\n"));
req.ContentLength = sendData.Count;
using (Stream reqStream = req.GetRequestStream())
{
reqStream.Write(sendData.ToArray(), 0, sendData.Count);
}
using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse())
using (Stream respStream = resp.GetResponseStream())
using (FileStream fs = new FileStream("c:\\test.txt", FileMode.Truncate))
{
int ch = 0;
while ((ch = respStream.ReadByte()) != -1)
{
fs.WriteByte((byte)ch);
}
}
根据你的java代码转换的。
#include "stdio.h"
static int num =1;
static int name =2;
static int type =3;
static int m;
static void Sel();
static void Sel1();
static void Dis();
static void Dis1();
static void Sel()
{
/*这里读者号,姓名和读者类型默认为1 2 3*/
scanf("%d", num);
scanf("%d", name);
scanf("%d", type);
if (num == 1)
{
if (name == 2)
{
if (type == 3)
{
Dis1();
Sel1();
}
}
}
else
{
printf("你输入的信息有误。");
printf("请输入读者号,姓名和读者类型,中间用空格隔开:\n");
}
}
/*输入信息提示界面*/
static void Dis()
{
Sel();
}
/*功能选择界面*/
static void Dis1()
{
printf("+++ 服务 +++\n");
printf("+++1.挂失 +++\n");
printf("+++2.功能2+++\n");
}
/*读者信息输入和验证功能*/
/*挂失功能*/
static void Sel1()
{
int c;
scanf("%d", m);
if (m == 1)
{
printf("确定要挂失吗?\r\n 1.确定 2.取消\n");
scanf("%d", c);
if (c == 1)
{
printf("挂失成功!");
}
else
{
Dis1();
Sel1();
}
}
}
int main(void)
{
printf("请输入读者号,姓名和读者类型,中间用空格隔开:\n");
Sel();
return 0;
}
按照我的理解,可以的,代码生成器是跨平台,而且是跨语言的(至少是跨文本语言的,UML暂时不好说,)。
代码生成器作为一种开发工具,一般不直接作为程序的一部分,通常也不直接或间接(如通过AOP)被程序调用,他是通过编程的方式生成所需要的代码,然后将生成的代码作为源文件,复制到开发工具的代码区,然后进行编译。由于代码生成器是在编译之前运行的,因此它可以跨语言,你不但可以用代码生成器生成高级语言,也可以生成汇编语言,甚至机器码(0、1代码)。
但编写代码生成器是一个难点,它需要你了解目标编程语言的语法。如果别人已经把你需要的代码生成器写好了,你只需按要求使用即可,此时就不需要了解目标编程语言的语法。
JNI是通过Java调用C语言(或其他语言,一般是C),它的实现机制与代码生成器不同(JNI是通过代码调用实现功能,而代码生成器是生成代码,复制代码进行使用),由于C是底层语言,一些底层操作单靠Java无法实现,所以才需要JNI。
以上是我对代码生成器的个人理解,虽然提问时间已过了很久,但依然希望能对你及其他网友有所帮助。
楼主,1、这个是Socket的程序,不难改成C的。
2、界面改成C的,也可以说得过去
3、涉及到JAVA的证书,改成C的,就麻烦了
1.如果你是想将java工程,你可以选用IDE工具,如Eclipse,Jbulid等,程序只有一运行,就可以编译成class啦(前提是带安装jdk和wtk);
2.或者如一楼说的写个批处理,调用一下jdk里javac编译一下
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流