Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
-3 / 2 / 4
Регистрация: 24.09.2015
Сообщений: 98

Не работает @Autowired для Service

26.10.2018, 20:55. Показов 2775. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер. Суть проблемы: есть класс Smart, которой проаннотирован

Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
package by.thetangro.lab6.entities;
 
import javax.persistence.*;
import java.util.Objects;
 
 
@Entity
@Table(name = "Smartphones", schema = "ttproject_test", catalog = "")
public class Smart {
    @Id
    @Column(name = "id", nullable = false)
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int id;
 
    @Basic
    @Column(name = "brandname", nullable = false, length = 500)
    private String mBrandName;
 
    @Basic
    @Column(name = "name", nullable = false, length = 500)
    private String mName;
 
    @Basic
    @Column(name = "ram", nullable = false)
    private Double mRAM;
 
    @Basic
    @Column(name = "displaysize")
    private Double mDisplaySize;
 
    @Basic
    @Column(name = "cpu", nullable = false, length = 500)
    private String mCPU;
 
    public Smart() {
    }
 
    public Smart(String mBrandName, String mName, Double mRAM, Double mDisplaySize, String mCPU) {
        this.mBrandName = mBrandName;
        this.mName = mName;
        this.mRAM = mRAM;
        this.mDisplaySize = mDisplaySize;
        this.mCPU = mCPU;
    }
 
    public int getId() {
        return id;
    }
 
    public void setId(int id) {
        this.id = id;
    }
 
    public String getmBrandName() {
        return mBrandName;
    }
 
    public void setmBrandName(String mBrandName) {
        this.mBrandName = mBrandName;
    }
 
    public String getmName() {
        return mName;
    }
 
    public void setmName(String mName) {
        this.mName = mName;
    }
 
    public Double getmRAM() {
        return mRAM;
    }
 
    public void setmRAM(Double mRAM) {
        this.mRAM = mRAM;
    }
 
    public Double getmDisplaySize() {
        return mDisplaySize;
    }
 
    public void setmDisplaySize(Double mDisplaySize) {
        this.mDisplaySize = mDisplaySize;
    }
 
    public String getmCPU() {
        return mCPU;
    }
 
    public void setmCPU(String mCPU) {
        this.mCPU = mCPU;
    }
 
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Smart that = (Smart) o;
        return id == that.id &&
                Objects.equals(mBrandName, that.mBrandName) &&
                Objects.equals(mName, that.mName) &&
                Objects.equals(mRAM, that.mRAM) &&
                Objects.equals(mDisplaySize, that.mDisplaySize) &&
                Objects.equals(mCPU, that.mCPU);
    }
 
    @Override
    public int hashCode() {
        return Objects.hash(id, mBrandName, mName, mRAM, mDisplaySize, mCPU);
    }
 
    @Override
    public String toString() {
        return
                "Бренд: '" + mBrandName + '\n' +
                        "Название: '" + mName + '\n' +
                        "Объем оперативной памяти: " + mRAM + '\n' +
                        "Диагональ дисплея: " + mDisplaySize + '\n' +
                        "Процессор: '" + mCPU + '\n';
    }
}


Есть Репозиторий

Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
package by.thetangro.lab6.repositories;
 
import by.thetangro.lab6.entities.Smart;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
 
@Repository
public interface SmartRepository extends CrudRepository<Smart, Long> {
}


Есть Сервис

Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package by.thetangro.lab6.services;
 
import by.thetangro.lab6.entities.Smart;
import by.thetangro.lab6.repositories.SmartRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
@Service("smartService")
public class SmartServiceImpl implements SmartService{
    @Autowired
    private SmartRepository smartRepository;
 
 
    public void addSmart(Smart obj){
        smartRepository.save(obj);
    }
}


Так вот, я пытаюсь сохранить в базу данных объект класса Smart

Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package by.thetangro.lab6;
 
import by.thetangro.lab6.entities.Smart;
import by.thetangro.lab6.services.SmartService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
 
@Component
public class Runner {
    @Autowired
    private SmartService smartService;
 
    public void run(){
        /*TTReader t = new TTXMLReader("C:\\sm.xml");
        SmartService smartService = new SmartServiceImpl();*/
        Smart smart = new Smart("Xiaomi", "Redmi Note 5", 4.00,5.99, "Qualcom Snapdragon 636");
        smartService.addSmart(smart);
    }
}


Но получаю ошибку NullPointerException

Кликните здесь для просмотра всего текста

xception in thread "main" java.lang.NullPointerException
at by.thetangro.lab6.Runner.run(Runner.java :17)
at by.thetangro.lab6.Lab6Application.main(L ab6Application.java:25)


Полный вывод:

Кликните здесь для просмотра всего текста

"C:\Program Files\Java\jdk-10.0.2\bin\java.exe" -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=64261 -Dcom.sun.management.jmxremote.authentica te=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=localhost -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2018.2.5\lib\idea_rt.jar=64262:C:\Progra m Files\JetBrains\IntelliJ IDEA 2018.2.5\bin" -Dfile.encoding=UTF-8 -classpath "C:\MyCloud\Универ\Предметы\РИС\Работы\Л абораторная 6\Jpa\target\classes;C:\Users\Михаил\.m2 \repository\org\springframework\boot\spr ing-boot-starter-data-jpa\2.0.6.RELEASE\spring-boot-starter-data-jpa-2.0.6.RELEASE.jar;C:\Users\Михаил\.m2\re pository\org\springframework\boot\spring-boot-starter\2.0.6.RELEASE\spring-boot-starter-2.0.6.RELEASE.jar;C:\Users\Михаил\.m2\re pository\org\springframework\boot\spring-boot\2.0.6.RELEASE\spring-boot-2.0.6.RELEASE.jar;C:\Users\Михаил\.m2\re pository\org\springframework\boot\spring-boot-autoconfigure\2.0.6.RELEASE\spring-boot-autoconfigure-2.0.6.RELEASE.jar;C:\Users\Михаил\.m2\re pository\org\springframework\boot\spring-boot-starter-logging\2.0.6.RELEASE\spring-boot-starter-logging-2.0.6.RELEASE.jar;C:\Users\Михаил\.m2\re pository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;C:\Users\Михаил\.m2\repository \ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;C:\Users\Михаил\.m2\repository \org\apache\logging\log4j\log4j-to-slf4j\2.10.0\log4j-to-slf4j-2.10.0.jar;C:\Users\Михаил\.m2\repositor y\org\apache\logging\log4j\log4j-api\2.10.0\log4j-api-2.10.0.jar;C:\Users\Михаил\.m2\repositor y\org\slf4j\jul-to-slf4j\1.7.25\jul-to-slf4j-1.7.25.jar;C:\Users\Михаил\.m2\repositor y\javax\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar;C:\Users\Михаил\.m2\repository \org\yaml\snakeyaml\1.19\snakeyaml-1.19.jar;C:\Users\Михаил\.m2\repository\ org\springframework\boot\spring-boot-starter-aop\2.0.6.RELEASE\spring-boot-starter-aop-2.0.6.RELEASE.jar;C:\Users\Михаил\.m2\re pository\org\springframework\spring-aop\5.0.10.RELEASE\spring-aop-5.0.10.RELEASE.jar;C:\Users\Михаил\.m2\r epository\org\aspectj\aspectjweaver\1.8. 13\aspectjweaver-1.8.13.jar;C:\Users\Михаил\.m2\repositor y\org\springframework\boot\spring-boot-starter-jdbc\2.0.6.RELEASE\spring-boot-starter-jdbc-2.0.6.RELEASE.jar;C:\Users\Михаил\.m2\re pository\com\zaxxer\HikariCP\2.7.9\Hikar iCP-2.7.9.jar;C:\Users\Михаил\.m2\repository \org\springframework\spring-jdbc\5.0.10.RELEASE\spring-jdbc-5.0.10.RELEASE.jar;C:\Users\Михаил\.m2\r epository\javax\transaction\javax.transa ction-api\1.2\javax.transaction-api-1.2.jar;C:\Users\Михаил\.m2\repository\o rg\hibernate\hibernate-core\5.2.17.Final\hibernate-core-5.2.17.Final.jar;C:\Users\Михаил\.m2\rep ository\org\jboss\logging\jboss-logging\3.3.2.Final\jboss-logging-3.3.2.Final.jar;C:\Users\Михаил\.m2\repo sitory\org\hibernate\javax\persistence\h ibernate-jpa-2.1-api\1.0.2.Final\hibernate-jpa-2.1-api-1.0.2.Final.jar;C:\Users\Михаил\.m2\repo sitory\org\javassist\javassist\3.22.0-GA\javassist-3.22.0-GA.jar;C:\Users\Михаил\.m2\repository\an tlr\antlr\2.7.7\antlr-2.7.7.jar;C:\Users\Михаил\.m2\repository \org\jboss\jandex\2.0.3.Final\jandex-2.0.3.Final.jar;C:\Users\Михаил\.m2\repo sitory\com\fasterxml\classmate\1.3.4\cla ssmate-1.3.4.jar;C:\Users\Михаил\.m2\repository \dom4j\dom4j\1.6.1\dom4j-1.6.1.jar;C:\Users\Михаил\.m2\repository \org\hibernate\common\hibernate-commons-annotations\5.0.1.Final\hibernate-commons-annotations-5.0.1.Final.jar;C:\Users\Михаил\.m2\repo sitory\org\springframework\data\spring-data-jpa\2.0.11.RELEASE\spring-data-jpa-2.0.11.RELEASE.jar;C:\Users\Михаил\.m2\r epository\org\springframework\data\sprin g-data-commons\2.0.11.RELEASE\spring-data-commons-2.0.11.RELEASE.jar;C:\Users\Михаил\.m2\r epository\org\springframework\spring-orm\5.0.10.RELEASE\spring-orm-5.0.10.RELEASE.jar;C:\Users\Михаил\.m2\r epository\org\springframework\spring-context\5.0.10.RELEASE\spring-context-5.0.10.RELEASE.jar;C:\Users\Михаил\.m2\r epository\org\springframework\spring-expression\5.0.10.RELEASE\spring-expression-5.0.10.RELEASE.jar;C:\Users\Михаил\.m2\r epository\org\springframework\spring-tx\5.0.10.RELEASE\spring-tx-5.0.10.RELEASE.jar;C:\Users\Михаил\.m2\r epository\org\springframework\spring-beans\5.0.10.RELEASE\spring-beans-5.0.10.RELEASE.jar;C:\Users\Михаил\.m2\r epository\org\slf4j\slf4j-api\1.7.25\slf4j-api-1.7.25.jar;C:\Users\Михаил\.m2\repositor y\org\springframework\spring-aspects\5.0.10.RELEASE\spring-aspects-5.0.10.RELEASE.jar;C:\Users\Михаил\.m2\r epository\com\h2database\h2\1.4.197\h2-1.4.197.jar;C:\Users\Михаил\.m2\reposito ry\mysql\mysql-connector-java\5.1.47\mysql-connector-java-5.1.47.jar;C:\Users\Михаил\.m2\repositor y\org\springframework\spring-core\5.0.10.RELEASE\spring-core-5.0.10.RELEASE.jar;C:\Users\Михаил\.m2\r epository\org\springframework\spring-jcl\5.0.10.RELEASE\spring-jcl-5.0.10.RELEASE.jar" by.thetangro.lab6.Lab6Application

. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.0.6.RELEASE)

2018-10-26 19:04:41.283 INFO 200 --- [ main] by.thetangro.lab6.Lab6Application : Starting Lab6Application on Computer with PID 200 (started by Михаил in C:\MyCloud\Универ\Предметы\РИС\Работы\Ла бораторная 6\Jpa)
2018-10-26 19:04:41.298 INFO 200 --- [ main] by.thetangro.lab6.Lab6Application : No active profile set, falling back to default profiles: default
2018-10-26 19:04:41.442 INFO 200 --- [ main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.A nnotationConfigApplicationContext@5a2d13 1d: startup date [Fri Oct 26 19:04:41 MSK 2018]; root of context hierarchy
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.springframework.cglib.core.ReflectUt ils$1 (file:/C:/Users/%d0%9c%d0%b8%d1%85%d0%b0%d0%b8%d0%bb/.m2/repository/org/springframework/spring-core/5.0.10.RELEASE/spring-core-5.0.10.RELEASE.jar) to method java.lang.ClassLoader.defineClass(java.l ang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of org.springframework.cglib.core.ReflectUt ils$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
2018-10-26 19:04:44.115 INFO 200 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2018-10-26 19:04:44.416 INFO 200 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
2018-10-26 19:04:44.557 INFO 200 --- [ main] j.LocalContainerEntityManagerFactoryBean : Building JPA container EntityManagerFactory for persistence unit 'default'
2018-10-26 19:04:44.603 INFO 200 --- [ main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [
name: default
...]
2018-10-26 19:04:44.760 INFO 200 --- [ main] org.hibernate.Version : HHH000412: Hibernate Core {5.2.17.Final}
2018-10-26 19:04:44.760 INFO 200 --- [ main] org.hibernate.cfg.Environment : HHH000206: hibernate.properties not found
2018-10-26 19:04:44.853 INFO 200 --- [ main] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.0.1.Final}
2018-10-26 19:04:45.061 INFO 200 --- [ main] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.MySQL5InnoDBDialec t
2018-10-26 19:04:45.827 INFO 200 --- [ main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2018-10-26 19:04:46.602 INFO 200 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
2018-10-26 19:04:46.602 INFO 200 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Bean with name 'dataSource' has been autodetected for JMX exposure
2018-10-26 19:04:46.618 INFO 200 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Located MBean 'dataSource': registering with JMX server as MBean [com.zaxxer.hikari:name=dataSource,type=H ikariDataSource]
Exception in thread "main" java.lang.NullPointerException
at by.thetangro.lab6.Runner.run(Runner.java :17)
at by.thetangro.lab6.Lab6Application.main(L ab6Application.java:25)
2018-10-26 19:04:46.634 INFO 200 --- [ main] by.thetangro.lab6.Lab6Application : Started Lab6Application in 6.817 seconds (JVM running for 9.184)
2018-10-26 19:04:46.634 INFO 200 --- [ Thread-1] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.A nnotationConfigApplicationContext@5a2d13 1d: startup date [Fri Oct 26 19:04:41 MSK 2018]; root of context hierarchy
2018-10-26 19:04:46.649 INFO 200 --- [ Thread-1] o.s.j.e.a.AnnotationMBeanExporter : Unregistering JMX-exposed beans on shutdown
2018-10-26 19:04:46.649 INFO 200 --- [ Thread-1] o.s.j.e.a.AnnotationMBeanExporter : Unregistering JMX-exposed beans
2018-10-26 19:04:46.649 INFO 200 --- [ Thread-1] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'
2018-10-26 19:04:46.649 INFO 200 --- [ Thread-1] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated...
2018-10-26 19:04:46.665 INFO 200 --- [ Thread-1] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.

Process finished with exit code 1


Я так понимаю, не работает аннотация @Autowired

Java
1
2
   @Autowired
    private SmartService smartService;
Помогите, пожалуйста.

Ссылка на весь проект на github: https://github.com/TheTangro/Jpa

Добавлено через 1 час 4 минуты
Вот при таком виде метода run()
Java
1
2
3
4
5
6
7
8
@Bean
    public boolean run(){
        /*TTReader t = new TTXMLReader("C:\\sm.xml");
        SmartService smartService = new SmartServiceImpl();*/
        Smart smart = new Smart("Xiaomi", "Redmi Note 5", 4.00,5.99, "Qualcom Snapdragon 636");
        smartService.addSmart(smart);
        return true;
    }
@Autowired срабатывает, зависимость внедряется, но бросается исключение:

Кликните здесь для просмотра всего текста
Exception in thread "restartedMain" java.lang.reflect.InvocationTargetExcept ion
at java.base/jdk.internal.reflect.NativeMethodAccesso rImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccesso rImpl.invoke(NativeMethodAccessorImpl.ja va:62)
at java.base/jdk.internal.reflect.DelegatingMethodAcc essorImpl.invoke(DelegatingMethodAccesso rImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.j ava:564)
at org.springframework.boot.devtools.restar t.RestartLauncher.run(RestartLauncher.ja va:49)
Caused by: java.lang.NullPointerException
at com.concretepage.MyApplication.run(MyApp lication.java:25)
at com.concretepage.MyApplication.main(MyAp plication.java:17)
... 5 more


Добавлено через 28 минут
Все, понял. Метод, помеченный @Bean вызывается автоматически. Вызов его намеренно вызывает исключение.
Но тогда вопрос: А как вызывать этот метод по требованию пользователя?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.10.2018, 20:55
Ответы с готовыми решениями:

SpringBoot - WebSocket не работает @Autowired
всем привет. не пойму в чем дело, гугление особо ниче не дает. проект на спрингбуте, часть, где используются вебсокеты, не видит бинов. ...

A Windows service with the name MySQL already exists. Please uninstall this service correctly or choose a different name for the new service.
Не знаю что делать дальше

Не работает region monitoring service
У меня такая проблема, не срабатывает метод didEnterRegion. Сама геолокация работает, координаты на симуляторе заданы близкие к тем,...

1
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
26.10.2018, 22:36
Цитата Сообщение от TheTangro Посмотреть сообщение
Но тогда вопрос: А как вызывать этот метод по требованию пользователя?
Разберитесь с тем, что делает аннотация @Bean
Аннотация @Bean используется для указания того, что метод создает, настраивает и инициализирует новый объект, управляемый Spring IoC контейнером.
Подробнее тут
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.10.2018, 22:36
Помогаю со студенческими работами здесь

Запущенный service не работает, когда нет процесса
Запускаю сервис в startForeground() он работает, в работающих приложениях у меня показано активны 1н процесс и 1н сервис (мой). Но когда...

Олицетворение (impersonating) системных учетных записей (NETWORK SERVICE, LOCAL SERVICE и пр.)
Возникла необходимость олицетворения потоком произвольной учетной записи, в т.ч. и системной. Пользуюсь LogonUser. С учетками, созданными...

The Lotus Domino Server Service Terminated With Service-specific Error
Может быть встречались с такой проблемой? The Lotus Domino Server Service Terminated With Service-specific Error 2351 At some point...

Не работает сайт на WWW, 503 Service Temporarily Unavailable
Всем здравствуйте, извините если не в том разделе пишу. Я работаю в компании системным администратором и на меня повесили управление...

Ошибка System Service Exception, не работает atikmdag.sys
Доброго времени суток! У меня Windows 10. При загрузки происходит ошибка System Service Exception, не работает atikmday.sys, после чего...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru