string?url?=?""?+?"senderLoginName="?+?"zy"?+?"token="?+?"997a7cdc-2399-47e8-991e-96c859cccc7f";
創(chuàng)新互聯(lián)建站專注于企業(yè)成都全網(wǎng)營銷推廣、網(wǎng)站重做改版、平房網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、成都做商城網(wǎng)站、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為平房等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
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集成設(shè)計文檔.doc",?FileMode.Open))
{
fileData?=?new?byte[fs.Length];
fs.Read(fileData,?0,?(int)fs.Length);
}
string?BOUNDARY?=?"---------------------------7d4a6d158c9";
string?fileName?=?"LDAP集成設(shè)計文檔.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);
}
}
根據(jù)你的java代碼轉(zhuǎn)換的。
#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("+++?服務(wù)?+++\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暫時不好說,)。
代碼生成器作為一種開發(fā)工具,一般不直接作為程序的一部分,通常也不直接或間接(如通過AOP)被程序調(diào)用,他是通過編程的方式生成所需要的代碼,然后將生成的代碼作為源文件,復制到開發(fā)工具的代碼區(qū),然后進行編譯。由于代碼生成器是在編譯之前運行的,因此它可以跨語言,你不但可以用代碼生成器生成高級語言,也可以生成匯編語言,甚至機器碼(0、1代碼)。
但編寫代碼生成器是一個難點,它需要你了解目標編程語言的語法。如果別人已經(jīng)把你需要的代碼生成器寫好了,你只需按要求使用即可,此時就不需要了解目標編程語言的語法。
JNI是通過Java調(diào)用C語言(或其他語言,一般是C),它的實現(xiàn)機制與代碼生成器不同(JNI是通過代碼調(diào)用實現(xiàn)功能,而代碼生成器是生成代碼,復制代碼進行使用),由于C是底層語言,一些底層操作單靠Java無法實現(xiàn),所以才需要JNI。
以上是我對代碼生成器的個人理解,雖然提問時間已過了很久,但依然希望能對你及其他網(wǎng)友有所幫助。
樓主,1、這個是Socket的程序,不難改成C的。
2、界面改成C的,也可以說得過去
3、涉及到JAVA的證書,改成C的,就麻煩了
1.如果你是想將java工程,你可以選用IDE工具,如Eclipse,Jbulid等,程序只有一運行,就可以編譯成class啦(前提是帶安裝jdk和wtk);
2.或者如一樓說的寫個批處理,調(diào)用一下jdk里javac編譯一下