我一直在尝试用C++ Unix风格编写服务器,但我被困在Windows机器上.我从MinGW开始,但它没有正确编译并告诉我它找不到"sys/socket.h"文件.当然,这对于服务器甚至工作是必要的.我去寻找它,我觉得某个地方说安装Cygwin,因为它有很多库.好的,我安装了它.它可能为我提供的每一个图书馆.然后我再次编译,它仍然无法找到它.我去搜索整个包含文件夹,但找不到该文件.所以我有点恼火(3小时下来,我不需要额外的功能),但我继续搜索.我无论如何都找不到它.我找到了多个使用它的参考,但我无法找到任何下载它.我现在一直在寻找过去的几个小时,而且我对所有事情都感到非常沮丧,因为没有任何参考我可以得到它(我不会使用winsock.如果我没记错的话,会破坏兼容性).
所以,长话短说,我在哪里可以下载'socket.h'/'socket.c'/'socket.cpp'文件?这将使我的生活(我相信许多其他人的生活)变得更加容易,我真的很感激它!
所以我一直在使用REST方法调用Google的API.我需要将事件插入到我拥有ID的特定日历中.这是我发送的POST请求:
地址:https: //www.googleapis.com/calendar/v3/calendars/ {calendarID}/events
身体:
Authorization: Bearer {access_token}
{
"end": {
"dateTime": "2012-08-30T12:30:00",
"timeZone": "America/Chicago"
},
"start": {
"dateTime": "2012-08-30T14:00:00",
"timeZone": "America/Chicago"
},
"summary": "E E 306",
"colorId": "9"
"kind": "calendar#event"
}
Run Code Online (Sandbox Code Playgroud)
这是我不断得到的回应:
{
"error":{
"errors":[
{
"domain":"calendar",
"reason":"timeRangeEmpty",
"message":"The specified time range is empty.",
"locationType":"parameter",
"location":"timeMax"
}
],
"code":400,
"message":"The specified time range is empty."
}
}
Run Code Online (Sandbox Code Playgroud)
我不明白我可能做错了什么.我输入了所有必要的数据,它要求我提供一个事件甚至不存在的参数.我也找不到关于这个特殊问题的任何文件.有没有人看到我失踪的东西?
所以我一直在编写一个简单的3D GUI应用程序,我打算让用户只需双击JAR文件就可以使用它.在将它放入JAR文件之前我完全正常工作,并且在从命令提示符运行时在JAR文件中完美地工作(在jar文件的目录中键入"java -jar Modeler.jar").但是,当我双击它时,没有任何反应.它运行完美,没有来自命令提示符的错误.我从经验中知道没有显示启动时的崩溃报告,因为控制台没有出现(或者它消失得太快),但是从命令提示符运行时没有崩溃报告.关于它为什么不起作用的任何想法?我正在运行Windows 7 Home Premium.以下是JAR文件的内容,如果它有帮助:
Modeler.jar
|
+--*all the class files necessary*
|
+--META-INF
|
+--MANIFEST.MF
Run Code Online (Sandbox Code Playgroud)
MANIFEST.MF的内容:
Manifest-Version: 1.0
Built-By: AnonymousJohn
Class-Path: bin/j3dcore.jar bin/j3dutils.jar bin/vecmath.jar
Created-By: 1.6.0_16 (Sun Microsystems Inc.)
Main-Class: Start
Run Code Online (Sandbox Code Playgroud)
编辑:所以在搞乱文件关联后使用java.exe而不是javaw.exe(从而提供打印输出的窗口),然后稍微修改启动机制打印出当前的工作目录,我发现了jar从"C:\ Windows\system32"运行,而不是我放在桌面上的文件夹.转到图.但是,移动必要的外部文件并没有任何帮助.
编辑2:我尝试制作另一个JAR文件,这次是一个简单的JFrame,里面有一个按钮,告诉你当前的工作目录.按下按钮,它会打开一个(无用的)JFileChooser.无论我把它放在我的电脑里,这都可以双击.所以我的JAR文件一定有问题.我将再次开始对我的程序进行故障排除.
编辑3:问题正是我的想法:当我双击它时,它没有正确加载库.奇怪的是,在我的测试中,我显示当前路径和库路径,无论是通过命令提示符还是通过双击它运行它,输出都完全相同.这是堆栈跟踪:
java.lang.UnsatisfiedLinkError: no j3dcore-d3d in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at javax.media.j3d.NativePipeline$1.run(NativePipeline.java:231)
at java.security.AccessController.doPrivileged(Native Method)
at javax.media.j3d.NativePipeline.loadLibrary(NativePipeline.java:200)
at javax.media.j3d.NativePipeline.loadLibraries(NativePipeline.java:157)
at javax.media.j3d.MasterControl.loadLibraries(MasterControl.java:987)
at javax.media.j3d.VirtualUniverse<clinit>(VirtualUniverse.java:299)
at javax.media.j3d.Canvas3D.<clinit>(Canvas3D.java:3881)
at ModelPreview.<init>(ModelPreview.java:51)
at Modeler.<init>(Modeler.java:76)
at Modeler.main(Modeler.java:1227)
at Start.main(Start.java:92)
Run Code Online (Sandbox Code Playgroud)
唯一的问题是它在库路径中.我特意在程序中设置它.现在我想到这可能是问题所在.我这样设置它(这是我在互联网上找到的一种方法.我不记得在哪里):
//above was code to …Run Code Online (Sandbox Code Playgroud) **请注意,当我说启动程序时,我并不是指启动操作系统的程序.我的意思是,一个简单的程序,当你启动计算机并执行某些操作时运行.
好吧,所以我不是非常精通Assembly/NASM,但我认为我已经掌握了很好的编写简单启动程序.
好吧,我以为我有足够的把握.显然不是.
我尝试了一个在网上找到的简单启动程序.它运行良好(打印字母'A').然后我修改它以打印存储在内存中的字母.它失败了; 而不是打印'A',它打印出一个笑脸.(我发誓,电脑现在正嘲笑我.)
这是源文件中的代码:
[BITS 16] ; We start up in 16-bit real mode
[ORG 0x7C00] ; We're booted into memory at this address. (Or so I'm told)
mov ah, 0x0E ; Teletype command
mov bh, 0x00 ; Page number
mov bl, 0x07 ; Attributes (7 == white foreground, black background)
mov al, [testChar] ; Character to print; load it from the memory referenced by testChar.
int 0x10 ; Tell the BIOS to execute …Run Code Online (Sandbox Code Playgroud)